发表于: 2018-03-24 19:37:41
1 622
今天完成的事情:
学习springMVC基础——servlet,使用非注解的方式书写springMVC
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class UsController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
ModelAndView a = new ModelAndView();
a.addObject("message","nihao");
a.setViewName("/test.jsp");
return a;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 配置HandlerMapping/HandlerAdapter -->
<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:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
">
<!-- 处理器映射器 将bean的name作为url进行查找,需要在配置handler时指定beanname(就是url) -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
</bean>
<!-- 处理器适配器 所有处理器适配器都实现了HandlerAdapter接口 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!-- 配置handler -->
<bean class="UsController" name="/index.do"/>
<!--<bean-->
<!--class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">-->
<!--<property name="mappings">-->
<!--<props>-->
<!--<prop key="/index.action">UsController</prop>-->
<!--</props>-->
<!--</property>-->
<!--</bean>-->
<!-- 配置视图解析器进行jsp解析,默认使用jstl标签,classpath下得有jstl的包 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<!-- 配置DispatcherServlet -->
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Archetype Created Web Application</display-name>
<!-- 配置SpringMVC -->
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- contextConfigLocation: 指定MVC配置文件位置 -->
<param-name>WEB-INF/mvc-servlet.xml</param-name>
<param-value>classpath:mvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<!-- 拦截所有以.action结尾的URL -->
<servlet-name>mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--<welcome-file-list>-->
<!--<welcome-file>test.jsp</welcome-file>-->
<!--</welcome-file-list>-->
</web-app>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring Landing Page</title>
</head>
<body>
<h2>Spring Landing Pag</h2>
<p>Click below button to get a simple HTML page</p>
${message}
</body>
</html>
<html>
<body>hello world!</body>
</html>
明天计划的事情:
同学要来转行,作为同学我要拉他们趟这趟水,请假
遇到的问题:
收获:
servlet作为springMVC的基础,还是值得学习的
Servlet 简介:
用户若想发动一个动态web资源,只需要完成以下两步即可:
1)编写一个servlet,即实现servlet接口的Java类
2)把开发好的servlet部署到web服务器中
Servlet 接口定义了所有servlet必须实现的方法。一个servlet是运行在web服务器中的一个小Java程序,servlet通过HTTP协议接收并响应web客户端发来的请求。这个接口中定义的方法包括初始化servlet,服务请求,以及remove servlet,这些方法即servlet的生命周期方法,调用顺序如下:
1)某个创建servlet对象的时候,调用初始化方法:void init(ServletConfig config)
2)客户端发送请求的时候,service方法被执行:void service(ServletRequest req,ServletResponse res)
3)某个servlet对象被摧毁的时候,调用destroy方法:void destroy()
Servlet 细节
1 1)<servlet>元素用于注册servlet,它包含了两个主要的子元素:
<servlet-name>:用于设置servlet的注册名称
<servlet-class>:用于设置servlet的完整类名
2)<servlet-mapping>元素用于映射一个已注册的servlet的一个对外访问路径,包含两个子元素:
<servlet-name>:用于设置servlet的注册名称
<url-pattern>:用于指定servlet的对外访问路径(可以随便指定)
2 同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个servlet的注册名。在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种是:“*.扩展名”;另一种格式是:以“/”开头,并以“/*”结尾,例如:
3 在Servlet的整个生命周期中,Servlet的init方法只被调用一次,而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doGet或doPost方法。
4 如果再<servlet>元素中配置了一个<load-on-startup>元素,那么web应用程序在启动时,就会装载并创建Servlet的实例对象,以及调用Servlet实例对象的init()方法。该技术可以用来为web写一个initServlet,这个servlet配置为启动时装载,为整个web应用床架必要的数据库表和数据。
5 如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的url,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。
评论