发表于: 2018-03-24 19:37:41

1 620


今天完成的事情:

学习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的整个生命周期中,Servletinit方法只被调用一次,而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servletservice方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servletservice()方法,service方法再根据请求方式分别调用doGetdoPost方法。

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都不处理的访问请求。





返回列表 返回列表
评论

    分享到