<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Java on Xiang CHEN 陈向</title>
    <link>https://chenxofhit.xyz/tags/java/</link>
    <description>Recent content in Java on Xiang CHEN 陈向</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Xiang CHEN</copyright>
    <lastBuildDate>Sat, 20 Apr 2024 01:48:39 +0800</lastBuildDate>
    <atom:link href="https://chenxofhit.xyz/tags/java/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>基于SSM&#43;MySQL&#43;ElementUI的Web程序运行示例（图）</title>
      <link>https://chenxofhit.xyz/posts/ssm-minimax-example/</link>
      <pubDate>Sat, 20 Apr 2024 01:48:39 +0800</pubDate>
      <guid>https://chenxofhit.xyz/posts/ssm-minimax-example/</guid>
      <description>&lt;p&gt;⚠️本文包含多图，如果浏览时候无图请使用科学上网。&lt;/p&gt;&#xA;&lt;p&gt;0，项目依赖的JDK版本为1.8；确保Maven配置正确（本人的maven版本为Apache Maven 3.9.6，且配置了阿里云mirror）；代码：https://github.com/chenxofhit/SSM-minimax-employee ，请下载至本地。&lt;/p&gt;&#xA;&lt;p&gt;1，利用MySQL客户端Navicat、SQLoyg或者命令行创建本地数据库 ssmminimax，执行SQL文件夹下的 EMPLOYEE_DEPART.sql 文件初始化表及插入数据；&lt;/p&gt;&#xA;&lt;p&gt;2，打开IDEA Ultimate导入该Maven项目；&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200100076.png&#34; alt=&#34;2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;3，修改数据库配置文件 jdbc.properties，根据你的实际情况修改数据库名、用户名和密码；&lt;/p&gt;&#xA;&lt;p&gt;4，配置项目：&lt;/p&gt;&#xA;&lt;p&gt;点击文件（File），项目结构（Project Structure）：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200102349.png&#34; alt=&#34;4.1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;配置项目的Facet（基本上不用动）&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200105072.png&#34; alt=&#34;4.2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;需要注意的是，pom.xml中配置了的 maven插件，maven是依赖JDK的，因此这两个地方的JDK版本需要保持一致：&#xA;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404220905610.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;5，运行项目，有两种方式，推荐第一种方式，比较简单：&lt;/p&gt;&#xA;&lt;p&gt;第一种，利用pom.xml中已经配置了的tomcat maven插件，点击右侧的maven停靠栏 -&amp;gt; 插件 -&amp;gt;tomcat7 -&amp;gt; tomcat7：run。&#xA;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200109902.png&#34; alt=&#34;5.1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;第二种，点击菜单栏：&#xA;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200112874.png&#34; alt=&#34;5.2.1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200115742.png&#34; alt=&#34;5.2.2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200118775.png&#34; alt=&#34;5.2.3&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200119656.png&#34; alt=&#34;5.2.4&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200122274.png&#34; alt=&#34;5.2.5&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200124388.png&#34; alt=&#34;5.2.6&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;6，如果数据库配置访问有错误，可能会出现下面的错误图：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200129869.png&#34; alt=&#34;6&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;7，如果正常启动，IDEA上会展示下面的日志：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200130305.png&#34; alt=&#34;7.1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;接着，在浏览器上访问：http://localhost:8090/minimax_war_exploded/&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200133393.png&#34; alt=&#34;7.2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;如果正常展示上面的页面，说明项目运行成功了，有需求可以在这个项目上进行二次开发。用户可以在页面上按照条件筛选查询：&#xA;&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404200140982.png&#34; alt=&#34;7.3&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;8，如果项目要部署上线，要对项目执行打包操作：&lt;img src=&#34;https://raw.githubusercontent.com/chenxofhit/picx-images-hosting/master/202404212005242.png&#34; alt=&#34;8&#34;&gt;&#xA;，如果控制台显示“[INFO] BUILD SUCCESS“字样，说明项目打包📦成功。接着上传这个war包到线上的Web容器比如Tomcat的webapps目录上即可。&lt;/p&gt;&#xA;&lt;p&gt;撒花🎉🚀💻，Coffee time Now。&lt;/p&gt;&#xA;&lt;p&gt;版本历史：Last updated at 2024年4月21日。&lt;/p&gt;</description>
    </item>
    <item>
      <title>基于Spring的高级Web实验环境搭建及常见错误</title>
      <link>https://chenxofhit.xyz/posts/springmvc_setup/</link>
      <pubDate>Tue, 21 Mar 2023 10:36:19 +0800</pubDate>
      <guid>https://chenxofhit.xyz/posts/springmvc_setup/</guid>
      <description>&lt;p&gt;Windows 环境下开发 Spring Web 程序所需要的 JDK、Maven、Tomcat、MySQL、IDEA的版本搭配推荐如下：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;JDK 1.8：下载地址 &lt;a href=&#34;https://www.oracle.com/java/technologies/javase-downloads.html&#34;&gt;https://www.oracle.com/java/technologies/javase-downloads.html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Maven 3.6.3：下载地址 &lt;a href=&#34;http://maven.apache.org/download.cgi&#34;&gt;http://maven.apache.org/download.cgi&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Tomcat 9.0：下载地址 &lt;a href=&#34;https://tomcat.apache.org/download-90.cgi&#34;&gt;https://tomcat.apache.org/download-90.cgi&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;MySQL 8.0：下载地址 &lt;a href=&#34;https://dev.mysql.com/downloads/mysql/&#34;&gt;https://dev.mysql.com/downloads/mysql/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;IDEA Ultimate 2020.2.3：下载地址 &lt;a href=&#34;https://www.jetbrains.com/idea/download/&#34;&gt;https://www.jetbrains.com/idea/download/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Spring 5.2.9：下载地址 &lt;a href=&#34;https://repo.spring.io/release/org/springframework/spring/&#34;&gt;https://repo.spring.io/release/org/springframework/spring/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;软件独立配置&#34;&gt;软件独立配置&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-jdk-的配置&#34;&gt;1. JDK 的配置&lt;/h3&gt;&#xA;&lt;p&gt;a. 下载 JDK 安装包并完成安装&lt;/p&gt;&#xA;&lt;p&gt;b. 配置环境变量 JAVA_HOME 和 PATH，新手推荐使用环境编辑器软件如：&lt;a href=&#34;https://www.rapidee.com/en/about&#34;&gt;Rapid Environment Editor&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;i. 新建一个JAVA_HOME环境变量，值为 JDK 的安装路径，如C:\Program Files\Java\jdk1.8.0&lt;/p&gt;&#xA;&lt;p&gt;ii. 将 %JAVA_HOME%\bin 添加到 PATH 系统环境变量中，以便在命令行中可以直接使用 javac 和 java 命令验证是否安装成功&lt;/p&gt;&#xA;&lt;p&gt;iii. 执行 java -version 命令进行验证&lt;/p&gt;&#xA;&lt;h3 id=&#34;2-maven-的配置&#34;&gt;2. Maven 的配置&lt;/h3&gt;&#xA;&lt;p&gt;a. 下载 Maven 安装包并完成安装 (&lt;a href=&#34;https://dlcdn.apache.org/maven/&#34;&gt;https://dlcdn.apache.org/maven/&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;b. 配置环境变量 MAVEN_HOME 和 PATH&lt;/p&gt;&#xA;&lt;p&gt;i. 新建一个 MAVEN_HOME 环境变量，值为 Maven 的安装路径，如 C:\Program Files\apache-maven-3.6.3&lt;/p&gt;</description>
    </item>
    <item>
      <title>JSP&#43;SSM的图书馆管理系统Case分析</title>
      <link>https://chenxofhit.xyz/posts/ssm_jsp/</link>
      <pubDate>Mon, 13 Jun 2022 11:03:31 +0800</pubDate>
      <guid>https://chenxofhit.xyz/posts/ssm_jsp/</guid>
      <description>&lt;p&gt;​         图书馆管理系统的功能要求如下：&lt;/p&gt;&#xA;&lt;p&gt;​&#x9;&#x9;1，实现学生信息的输入；2，实现图书信息的输入；3，实现图书的查询功能；4，实现学生信息的查询功能；5，实现图书的借出和归还功能。这个系统的角色其实只有两个，一个是学生，一个是管理员。结合实际生活可以分析这两个角色的功能，学生角色：查询图书信息；自己借阅书籍列表；管理员角色：书籍借出和归还。&lt;/p&gt;&#xA;&lt;p&gt;​         在带高级 Web 课程设计时，一个同学选用了 JSP+Servlet 技术模型来实现书籍管理系统。他在JSP页面里面的各种 Service的手动生成时候发现了依赖问题，跟他在一起讨论了几个小时后来我就把他的后端改造成了SSM 模式的。但是前端仍然保留成  JSP，也算是一个不彻底的不伦不类的改造。但是对于本科学生而言，这个改造对于他完成课设 Project来说是足够的。&lt;/p&gt;&#xA;&lt;p&gt;​         十年前我读本科时候，系里面还没有正式的高级 Web 课程，那个时候还是以 C++ 和 Java 的这种基础课为主。反观现在的学生要幸福很多，资料视频多到爆炸，Github 上的 Project 满天飞。现在要实现一个Web系统，方案选型实在是五花八门，八仙过海各显神通了。但是对于怎么训练本科学生循序渐进地掌握Web技术，也是需要深入地思考。据我所知，在实践的时候有别的学校老师规定学生不能使用框架来实现，也是有一定的道理。&lt;/p&gt;&#xA;&lt;p&gt;​&#x9;     改造后的整个 Project 的 Structure 如下图所示。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://tva1.sinaimg.cn/large/e6c9d24egy1h36fteeli9j21bw0u0tes.jpg&#34; alt=&#34;image-20220613110612352&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;​&#x9;    在JSP中获取后端Spring管理的Service实例类的方法在login-do.jsp如下：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-jsp&#34; data-lang=&#34;jsp&#34;&gt;&amp;lt;%@ page import=&amp;#34;com.keshe.pojo.Student&amp;#34; %&amp;gt; &#xA;&amp;lt;%@ page import=&amp;#34;com.keshe.service.LoginServiceImpl&amp;#34; %&amp;gt; &#xA;&amp;lt;%@ page import=&amp;#34;com.keshe.service.LoginService&amp;#34; %&amp;gt; &#xA;&amp;lt;%@ page import=&amp;#34;com.keshe.dao.LoginDaoImpl&amp;#34; %&amp;gt; &#xA;&amp;lt;%@ page import=&amp;#34;com.keshe.dao.LoginDao&amp;#34;%&amp;gt; &#xA;&amp;lt;%@ page import=&amp;#34;org.springframework.web.context.WebApplicationContext&amp;#34; %&amp;gt;&#xA;&amp;lt;%@ page import=&amp;#34;org.springframework.web.context.support.WebApplicationContextUtils&amp;#34; %&amp;gt;&#xA;&amp;lt;%-- Created by IntelliJ IDEA. User: Chaos Date: 2022/6/9 Time: 14:39 To change&#xA;this template use File | Settings | File Templates. --%&amp;gt; &#xA;&amp;lt;%@ page contentType=&amp;#34;text/html;charset=UTF-8&amp;#34; language=&amp;#34;java&amp;#34; %&amp;gt;&#xA;&amp;lt;html&amp;gt;&#xA;  &amp;lt;head&amp;gt;&#xA;    &amp;lt;title&amp;gt;登录&amp;lt;/title&amp;gt;&#xA;  &amp;lt;/head&amp;gt;&#xA;  &amp;lt;body&amp;gt;&#xA;    &amp;lt;% &#xA;    request.setCharacterEncoding(&amp;#34;UTF-8&amp;#34;); &#xA;    Integer Snum=Integer.valueOf(request.getParameter(&amp;#34;uid&amp;#34;)); &#xA;    Integer Pwd= Integer.valueOf(request.getParameter(&amp;#34;pwd&amp;#34;)); &#xA;    WebApplicationContext wac =&#xA;    WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext());&#xA;    LoginService ls = (LoginService)wac.getBean(LoginService.class);//注入Bean的名称&#xA;    student = new Student(); &#xA;    student.setSnum(Snum); &#xA;    student.setPwd(Pwd); &#xA;    Student stu=ls.login(student); &#xA;    if(stu==null){ &#xA;      System.out.println(1L);&#xA;      response.sendRedirect(&amp;#34;login.jsp&amp;#34;); &#xA;    }else{ &#xA;      System.out.println(2L); //&#xA;      Integer flag=stu.getSnum()&amp;gt;&amp;gt;2; &#xA;    } %&amp;gt;&#xA;  &amp;lt;/body&amp;gt;&#xA;&amp;lt;/html&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;由于 LoginService 在后端是用注解由 Spring 自动生成和管理的，没有在 xml 中显示配置 bean 的 id 和实例，因此直接采用 (LoginService) wac.getBean(LoginService.class) 也就是 byType 这种方式来获取这个bean。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
