发表于: 2020-06-30 09:19:11
2 1853
这是2020.6.29的日报
今天完成的事情:
跟着网上教程敲了一个ssm小demo(非RESTful风格)。
项目目录
controller
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private IUserService userServiceImpl;
@RequestMapping("/crud")
public String crud(){
return "page/user_crud";
}
@RequestMapping("/add")
public String add(HttpServletRequest request, User user){
this.userServiceImpl.add(user);
request.setAttribute("result", "添加用户成功!");
return "page/success";
}
@RequestMapping("/deleteById")
public String deleteById(HttpServletRequest request, String id){
this.userServiceImpl.deleteById(id);
request.setAttribute("result", "删除用户成功");
return "page/success";
}
@RequestMapping("/update")
public String update(HttpServletRequest request,User user){
this.userServiceImpl.update(user);
request.setAttribute("result", "修改用户成功");
return "page/success";
}
@RequestMapping("/findById")
@ResponseBody
public String findById(HttpServletRequest request, HttpServletResponse response, String id) throws IOException {
User user = this.userServiceImpl.findById(id);
return JSONObject.fromObject(user).toString();
}
@RequestMapping("/findAll")
@ResponseBody
public String findAll(HttpServletRequest request){
List<User> userList = this.userServiceImpl.findAll();
return JSONArray.fromObject(userList).toString();
}
}
springMVC.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- 1、负责扫描(Controller)带有注解的组件,并注册在spring容器中 -->
<context:component-scan base-package="com.base"/>
<!-- 2、视图解析器,将 handler(Controller)方法返回值 解析为 实际的物理视图 后再返回给前置控制器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
<property name="contentType" value="text/html;charset=utf-8"/>
</bean>
<!-- 3、Spring MVC 有三大组件:处理器映射器(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver) -->
<!-- 其中的 处理映射器 和 和 处理适配器 可以通过配置 注解驱动 来代替,如下:-->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 4、对静态资源的访问 -->
<mvc:resources mapping="/**" location="/" /> <!-- 此时访问的是webapp根目录下的 除 WEB-INF(安全目录) 之外 的所有静态资源文件 -->
<!-- 5、自定义拦截器 -->
<!--
/** 的意思是所有文件夹及里面的子文件夹
/* 是所有文件夹,不含子文件夹
/ 是web项目的根目录
-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/> <!-- 此处表示要拦截的请求:所有请求 -->
<mvc:exclude-mapping path="/user/crud"/> <!-- 此处表示需要排除拦截的地址:/user/crud -->
<bean id="MyInterceptor" class="com.plat.interceptor.MyInterceptor"/> <!-- 这个类就是自定义的拦截器类 -->
</mvc:interceptor>
</mvc:interceptors>
</beans>
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、配置DispatcherServlet(前置控制器),这是配置 spring MVC 的第一步 -->
<!-- 负责拦截 匹配规则的请求,对拦截下来的请求依据相应的规则分发到目标Controller处理 -->
<servlet>
<servlet-name>springDispatcherServlet</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>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern> <!-- 匹配此处规则的请求都将被 名为 springDispatcherServlet 的前置控制器处理,由前置控制器负责调度工作 -->
</servlet-mapping>
<!-- 不拦截某些文件(除了在 spring_mvc.xml配置文件 通过设置 <mvc:resources mapping="/**" location="/" /> 实现对静态资源的访问,也可在 web.xml 设置 不拦截 满足某些规则的文件 来实现对静态资源的访问,如下: ) -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/common/*</url-pattern>
</servlet-mapping>
<!-- 2、配置spring的核心配置文件(告知核心配置文件所在位置),才能成功启动spring容器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 3、使用监听器启动spring -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 4、添加过滤器,解决中文乱码问题 -->
<filter>
<filter-name>Spring character encoding filter</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>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
使用jetty插件运行
明天计划的事情:
把springmvc关于restful风格的注解好好理解一遍。
把springmvc的代码执行流程好好捋一捋。
遇到的问题:还不是太理解spirngmvc的代码执行流程。
收获:了解了ssm基本的整合步骤。
评论