来自:mjsws > 馆藏分类
配色: 字号:
SpringMvc和servlet简单对比介绍
2018-12-30 | 阅:  转:  |  分享 
  
SpringMvc和servlet简单对比介绍一、servlet实现登录。咱们先来看一下servlet实现注册登录。???
LoginServlet?3?demo.s
ervlet.LoginServlet
?4
?
??LoginServlet?2?login<
/url-pattern>?1
?访问顺序为1—>2—>3—>4,其中2和3的值必须相同。ur
l-pattern标签中的值是要在浏览器地址栏中输入的url,可以自己命名,这个url访问名为servlet-name
中值的servlet,两个servlet-name标签的值必须相同,因为通过servlet标签中的servlet-na
me标签映射到servlet-class标签中的值,最终访问servlet-class标签中的class。还有,web
.xml的/表示的是http://localhost:8080/+工程名。转自(点击打开链接)1、jsp页面action="login"method="post">用户名:Name">
密码:
puttype="submit"value="登录">?2、点击登录按钮后,提交表单,首先匹配web.xml中的路径,找到rl-pattern>值是login的sevlet,然后根据name去匹配servlet类,找到LoginServlet。publ
icclassLoginServletextendsHttpServletimplementsServlet{
@OverrideprotectedvoiddoGet(HttpServletRequestrequest,Ht
tpServletResponseresponse)throwsServletException,IOException
{doPost(request,response);}@Overrideprotectedvoid
doPost(HttpServletRequestrequest,HttpServletResponseresponse
)throwsServletException,IOException{Stringresult="";
//获取用户名StringuserName=request.getParameter("userName");//
获取密码Stringpasswd=request.getParameter("password");UserDao
.SelectForLogin(userName,password);//数据中查找此人request.getSession
().setAttribute("userName",userName);response.sendRedirect("l
ogin_success.jsp");}}?3、然后再跳转到登陆成功页面>${userName}欢迎您,登录成功!?但是总是需要手写跳转servlet,开发
效率比较低,所以就涌现除了很多框架,比如struct2,spring等等。http://www.44226.net?二、sprin
gMVC由于SpringMVC是方法级别的拦截,SpringMVC的方法之间基本上独立的,独享requestresponse数据
。它还可以和很多框架进行无缝集成,开发效率和性能高。现在很多公司都采用springMVC来进行开发,咱们公司也是采用springM
VC来进行。下面我介绍一下springMVC如何实现注册登录。1、jsp页面(登录)?
用户名:="userName">

密    码:name="password">

登录">?2、然后同样是匹配web.xmlspmvc
org.springframework.web.servlet.D
ispatcherServlet
1tup>
spmvce>.do?上面这段xml的意思就
是,所有的以.do结尾的action都让org.springframework.web.servlet.DispatcherSer
vlet这个类来处理。load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init(
)方法)。这时servlet不用初始化,而是交给容器去处理。?Spring主要也是通过DispatcherServlet实现了Se
rvlet这个接口,又叫前端控制器,来自前端的请求会先到达这里,它负责到后台去匹配合适的handler。DispatcherSer
vlet的主要工作流程如下:前端请求到达DispatcherServlet。前端控制器请求HandlerMappering查找H
andler。如果查找到存在的处理器,进一步去调用service和dao层返回结果再到controller层,渲染具体的视图,返回
结果给页面。3、然后加载sringMVC-servlet.xml配置文件。context:annotation-config>om.qunar.fresh2017.controller">?4、然后开始扫描
controller这个类,找到login.do。这时是通过注解来找到自己所需要的方法。/用户登录时,检查数据库中是否存
在此人@paramuserName输入的用户名@parampassword输入的用户密码@pa
ramhttpSession设置sessionhttp://f-1.cc@return登陆成功返回登录成功,否则返回
登录失败/@RequestMapping("login.do")publicStringlogin(Stringuser
Name,Stringpassword,HttpSessionhttpSession,HttpServletRequest
request,HttpServletResponseresp)throwsUnsupportedEncodingExce
ption{Useruser=UserDao.SelectForLogin(userName,password);/
/数据中查找此人OptionaluserPresent=Optional.of(user);if(user
Present.isPresent()){Cookiecookie=newCookie("nickName",URL
Encoder.encode(user.getNickName(),"utf-8"));cookie.setMaxAge(24
60607);resp.addCookie(cookie);request.setAttribute("ni
ckName",user.getNickName());resp.setCharacterEncoding("utf-8");
LOGGER.info("数据库里有这个人");return"welcome";}else{LOGGER.info("
数据库里没有这个人");}return"loginerror";}?@RequestMapping("login.do")
这个注解是SpringMVC中的一个注解,该注解说明的是,对于login.do的请求,通过注解标签下面的方法进行响应。相当于方法的
一个URL。?5、最后在返回登录成功界面这时需要spring-servlet.xml里的视图解析器。?ork.web.servlet.view.InternalResourceViewResolver">rtyname="suffix"value=".jsp"/>???上面这段代码的意思是解析controller中
方法返回的jsp页面,前缀加“/”表示webapp根目录,配置后缀“.jsp”表示自动在返回值后加.jsp后缀,这样就找到了web
app下的wecome.jsp。http://www.letaoqpyx.com?
欢迎:${nickName}通过EL表达式显示登录用户昵称。至此springMVC登录功能就实现完成了。?sprin
g框架已经是javaweb开发很主流的框架,这个框架有很多优点当然也有它的不足之处,比于之前的servlet,它一定程度上简化了
开发人员的工作,使用servlet的话需要每个请求都去在web.xml中配置一个servlet节点,而Spring中的Dispa
tcherServlet他会拦截所有的请求,进一步去查找有没有合适的处理器,一个前端控制器就可以。?下面在介绍一下session和cookie的使用方法。1、session新建session,并添加参数。?HttpSessionsession=request.getSession();session.setAttribute("nickName",value);jsp页面获取session${nickName}过滤器获取sessionStringnickName=(String)session.getAttribute("nickName");

献花(0)
+1
(本文系mjsws首藏)