遇到的编码500错误问题???
1、先配置Tomcat
修改tomcat下的conf/server.xml文件,找到如下代码:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
这段代码规定了Tomcat监听HTTP请求的端口号等信息。可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。更改后的代码如下所示:
2、在pom.xml配置依赖
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>
这些都是重启Tomcat时遇到的500错误,字符编码中的错误
3、web.xml的配置
SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。
DispatcherServlet是继承自HttpServlet的,既然SpringMVC是基于DispatcherServlet的,那么我们先来配置一下DispatcherServlet,好让它能够管理我们希望它管理的内容。HttpServlet是在web.xml文件中声明的。
<!--设置servlet-->
<!--
配置DispatcherServlet:这个是SpringMVC的核心;请求分发器和前端控制器
-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--
DispatcherServlet要绑定Spring的配置文件
-->
<init-param>
<!--配置地址定位-->
<param-name>contextConfigLocation</param-name>
<!--classpath: 本地路径 当前类的路径-->
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--启动级别:1 数字越小启动的越早-->
<load-on-startup>1</load-on-startup>
</servlet>
<!--
在SpringMVC中 / /*
/ :只匹配所有的请求,不会去匹配jsp页面
/* :匹配所有的请求,包括jsp页面
-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
4、springmvc-servlet.xml的配置
<!--自动扫描包,让指定包下的注解生效,有IOC容器统一管理-->
<context:component-scan base-package="com.controller"/>
<!--让SpringMvc 不处理静态资源 .js .css .html -->
<mvc:default-servlet-handler/>
<!--开启mvc驱动
支持MVC注解驱动
在Spring中一般采用@RequestMapping完成映射关系
要想使@RequestMapping注解生效
必须注册DefaultAnnotationHandlerMapping
和AnnotationMethodHandlerAdapter实例
这两个实例分别在类实例和方法实例处理
而annotation-driven的配置自动帮我们完成了这两个实例的注入
-->
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<!-- prefix表示jsp路径的前缀,suffix表示jsp路径的后缀 -->
<!--切记!!! 前缀 最后面有/ 后缀 最后面没有/ 这是在报404是找到的错误 -->
<!--前缀 最后面有/-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀 最后面没有/-->
<property name="suffix" value=".jsp"/>
</bean>
整合:
dao:1、编写mybatis配置文件将:
1、写入要扫描的实体类包
2、写入mapper
3、写好dao层的接口和xml
2、编写database文件:driver,url,user,password
3、编写连接mybatis的spring-dao.xml配置文件:
1、关联数据库配置文件
2、写入数据库连接池:c3p0,jdbc
3、运用SqlSessionFactoryBean加入连接池和mybatis配置文件创建SqlSessionFactory
4、运用MapperScannerConfigurer 加入SqlSessionFactory,和dao层的接口配置dao扫描包
service:1、编写spring-service.xml配置文件:
1、创建service层的包和类
2、引入要扫描service层的包
3、注入service的实现类
4、写入业务管理器
controller:1、对项目添加web模块并写入jsp目录,对web.xml配置DispatcherServlet和静态资源过滤器
2、编写spring-MVC.xml配置文件:
(非注解)
1、引入要扫描的controller包
2、配置适配器和映射器
3、配置视图解析器
4、配置静态资源过滤器
(注解)
1、引入要扫描的controller包
2、配置注解驱动
3、配置静态资源过滤器
4、配置视图解析器
最后:将三层spring配置import进applicationContext.xml文件
5、SpringMVC配置过滤器
post请求传中文的时候出现乱码,需要在xml中配置一些参数 (碰到前端乱码时可以在web.xml中配置)
<!-- 配置过滤器--> <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> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
6、SpringMVC web.xml完整配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--1、设置servlet--> <!-- 配置DispatcherServlet:这个是SpringMVC的核心;请求分发器和前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- DispatcherServlet要绑定Spring的配置文件 --> <init-param> <!--配置地址定位--> <param-name>contextConfigLocation</param-name> <!--classpath: 本地路径 当前类的路径--> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <!--启动级别:1 数字越小启动的越早--> <load-on-startup>1</load-on-startup> </servlet> <!-- 在SpringMVC中 / /* / :只匹配所有的请求,不会去匹配jsp页面 /* :匹配所有的请求,包括jsp页面 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!--单个servlet在web中的配置步骤--> <!-- <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.controller.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping>--> <!--2、SpringMVC乱码配置问题--> <!-- 配置过滤器--> <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> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
7、ssm框架
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<!--数据库驱动-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<!--数据库连接池 c3p0-->
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.4</version>
</dependency>
<!--servlet JSP-->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2.1-b03</version>
</dependency>
<!--Mybatis-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!--Spring-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.8</version>
</dependency>
<!--lombok注解-->
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
</dependencies>
<!--在build中配置resources,来防止我们资源导出失败问题 重点-->
<build>
<resources>
<resource>
<!--路径问题一定要配置正确 否则找不到mapper bug很难找的到 处于绝望中一个星期-->
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
更多疑问可以来bilibili找狂神,让狂神带我们一起飞!!!https://www.bilibili.com/video/BV1aE41167Tu?p=17&spm_id_from=pageDriver