参考:SSM框架整合—实现简单登录注册功能 – nocol的博客 – CSDN博客
https://www.bilibili.com/video/av21045215?from=search&seid=8937151446861349890
源码 :
链接:https://pan.baidu.com/s/1ao6BmB5D8Gy5MJBYwdPk6g
提取码:9cab
复制这段内容后打开百度网盘手机App,操作更方便哦
一直玩其它东西,感觉有必要有点项目基础,所以来好好搭建一下ssm。
第一步:新建maven工程
next
第二步:先在pom.xml文件里添加maven的插件,即设置jdk的编译版本和执行版本都为1.8.
这里有两种方法:maven jdk 版本配置 – fancydeepin – BlogJava 可以参考这个,我是习惯在pom.xml文件里配,但是在setting文件里配的话,全部都不用另外配置了。这里还配置了war包的生成路径(我觉得是,不过关系不大)
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
配置好后右键项目–maven–update project 结果可如下图:
第三步:添加所需jar包
无非就是添加spring,mybatis,mysql,连接池之类的东西,这个就不贴出来了,直接看源码即可。 然后再进行一次maven update,确认jar包的导入。
第四步:生成并修改web.xml文件
一般来说刚生成的maven工程的webapp下都是没有web.xml文件的,所以需要我们手动添加。
添加方法:右键项目名–java ee tools–Generate Deployment descriptor stub即可,结果如下:
然后修改web.xml文件,这里是配置一切的最开始的加载过程,springmvc的DispatcherServlet就是在这里配置,这里把东西发一下:
<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://java.sun.com/xml/ns/javaee” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” version=”2.5″>
<!– 2.1 注册Spring配置文件的位置 –>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!– 2.2 注册ServletContext监听器 –>
<!– 用于创建Spring容器对象放入ServletContext的域属性空间中,保证整个应用中的Spring容器唯一 –>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!– 2.3 注册字符集过滤器 一定要放在所有过滤器的最前面 –>
<!– 用于解决请求参数中的中文乱码问题 –>
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceReponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!– 2.4 配置中央调度器 拦截所有请求–>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!– 2.5 使用Rest风格的URI –>
<filter> <!– 其实总的来说就是那个类去拦截哪个url进行处理,名字只是一个中介 –>
<filter-name>HiddenHttpMethodFilter</filter-name> <!– 名字 –>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> <!– 对应的类 –>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name> <!– 还是名字 –>
<url-pattern>/*</url-pattern> <!– 拦截的url –>
</filter-mapping>
<!– –>
<!– 解决无法直接发送PUT请求,带着请求体的问题,在修改员工信息的时候使用 –>
<filter>
<filter-name>HttpPutFormContentFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpPutFormContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<display-name>workone</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
基本大家看一下就能理解了,差不多直接复制进去就行了,注意项目名和文件名的对应关系。
第五步:把java这部分的代码搞好。
项目结构图如下:
msg为服务端和客户端交互的信息类,有点基础的相信大家看得都很明白。
第六步:把配置文件都搞上。
1.先把mapper.xml文件搞上。
这里注意:下面这几个地方一定要和你的文件结构对上,如果你一点基础都没有,建议你先别搞这个。
2.接着是jdbc.properties文件 这里注意:mylogin是我对应的数据库名,后面的账号密码你都需要看你的修改。
然后给出我的sql语句:
create database mylogin;
use mylogin;
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`trueName` varchar(60) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
insert into `t_user`(`id`,`trueName`,`password`) values (1,”何天”,”123456″),(2,”小红”,”654321″);
select * from t_user;
3. 接着是applicationcontext.xml,,spring-mvc.xml,,,mybatis.xml文件的导入,这里注意里面所有带有com. 什么的,都是表示要扫描的路径,这个必须和你的路径对应,不然就会报什么路径错误之类的。
我的springmvc.xml里没有配置视图解析器,因为数据都是json形式传送,也没有界面的改变。如果需要的自己另外配置。
第七步:添加静态页面和文件
首先是css和js,直接复制进去即可:
如果对ajax熟悉一些可以看看。
然后直接运行,报错:
Error configuring application listener of class[org.springframework.web.context.ContextLoaderListener
很明显,意思就是这个项目的监听器找不到,也就是在web.xml的配置。可是我们明明都导入了啊。这是因为没有加载到克隆的tomcat里。
你会发现在这个路径下找不到lib文件夹,里面存折所有的jar包。
E:\java\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\workone\WEB-INF
解决方案:Maven+spring 报错:Error configuring application listener of class org.springframework.web.cont 直接跟着操作把maven依赖加进去即可。
然后运行ok,下面是全部的截图:
登录:
前端:
1.
2.
3.
服务端:
注册:
前端:
1.
2.
3.
服务端:
嗯,感觉这一个登录注册搞下来搞了好久,因为各个方面都要搞,各种地方都可能出错,没经验就是这样子。不过经过这一次的试炼之后就熟悉了狠毒,各种调试方法都想出来了。
比如前端这边,一直处于开发者模式,观察每个发送和返回的请求,看参数和请求的路径。或者自己直接在浏览器里访问controller层的requestmapping,看各种反应。
服务端这边,输出是一个手段,但感觉更关键的是看懂各种报错,也就意味着你需要基础比较扎实,在tomcat,eclipse,ssm,maven的使用上有基本的了解,对ssm要熟悉里面的加载过程。所以,我就是不断地在dao层,controller层,xml文件上来回试探。
还有就是看数据库
感觉还有的时候就得需要问人了,自己的知识还是非常缺乏的。感觉有必要把ssm底层和tomcat底层都好好搞一遍,不然出了问题容易解决不了。
欢迎交流讨论。