J2ee注册的跳转和cookiesession.docx
- 文档编号:5776183
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:10
- 大小:18.26KB
J2ee注册的跳转和cookiesession.docx
《J2ee注册的跳转和cookiesession.docx》由会员分享,可在线阅读,更多相关《J2ee注册的跳转和cookiesession.docx(10页珍藏版)》请在冰豆网上搜索。
J2ee注册的跳转和cookiesession
登录与注册的基本思想
步骤1:
先写jsp的页面,登录的登录成功进入的界面注册的注册成功进入界面注册失败的
步骤2:
写servlet页面来进行登录注册的功能实现和页面跳转的功能
登录密码和用户名一致则跳至主页面
注册。
点击之后进入注册界面
步骤3写UserDao注册对数据库进行插入,Dao中的方法是insert。
Impl中执行的sql数据库语句
步骤4写service调用Dao中的insert方法,接口register(Useruser)UserDaoud.insert
步骤5写servlet调用service中的userServiceImpl.register()前面要初始化变量Useruser中的req.getParament拿到值进行输出
1编码的问题
书写编码过滤器
Web.xml
xmlversion="1.0"encoding="UTF-8"?
>
xsi="http: //www.w3.org/2001/XMLSchema-instance"xmlns="http: //xmlns.jcp.org/xml/ns/javaee"xsi: schemaLocation="http: //xmlns.jcp.org/xml/ns/javaeehttp: //xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"id="WebApp_ID"version="3.1"> UserFilter.java packagecom.chinasofti.eec.filter; importjava.io.IOException; importjavax.servlet.Filter; importjavax.servlet.FilterChain; importjavax.servlet.FilterConfig; importjavax.servlet.ServletException; importjavax.servlet.ServletRequest; importjavax.servlet.ServletResponse; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; publicclassUserFilterimplementsFilter{ @Override publicvoiddestroy(){ //TODOAuto-generatedmethodstub } @Override publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2) throwsIOException,ServletException{ HttpServletRequestreq=(HttpServletRequest)arg0; HttpServletResponseresp=(HttpServletResponse)arg1; req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); arg2.doFilter(arg0,arg1); } @Override publicvoidinit(FilterConfigarg0)throwsServletException{ //TODOAuto-generatedmethodstub } } 2通过cookie来存储登录的次数 Login.jsp <%@pagelanguage="java"contentType="text/html;charset=utf-8" pageEncoding="utf-8"%> DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http: //www.w3.org/TR/html4/loose.dtd">
用户名:
密 码:
LoginServlet.java
packageservlet;
importjava.io.IOException;
importjavax.servlet.ServletContext;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@WebServlet("/login")
publicclassLoginServletextendsHttpServlet{
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
this.doPost(req,resp);
}
@Override
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
Stringbtn=req.getParameter("btn");
Stringname=req.getParameter("user");
Stringpwd=req.getParameter("pwd");
if("登录".equals(btn)){
if("admin".equals(name)&&"admin".equals(pwd)){
ServletContextctxt=getServletContext();
intcount=0;
if(ctxt.getAttribute("count")==null){
count=0;
}else{
count=Integer.parseInt(ctxt.getAttribute("count").toString());
}
count++;
ctxt.setAttribute("count",count);
resp.sendRedirect("index.jsp");
}
}
}
}
Index.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
3通过cookie来存储对用户密码进行存储
内置对象来进行变量参数的赋值,通过req.getParament与req.setAttribute(”key”,vlaue)
Index.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
Login.jsp
<%@pagelanguage="java"contentType="text/html;charset=utf-8"
pageEncoding="utf-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
<%
Stringusername=null;
Stringpwd=null;
Cookie[]c=request.getCookies();
if(c!
=null&&c.length!
=0){
for(Cookieco:
c){
if(co.getName().equals("username")){/*不同页面中传值的变量是的双引号是键值*/
username=co.getValue();/*同一个页面中传值的变量是自己本页面定义的变量不能直接拿,servlet中要通过req,resp来进行值的传递*/
}elseif(co.getName().equals("userpwd")){
pwd=co.getValue();
}
}
if(username!
=null&&pwd!
=null){%>
<%request.getRequestDispatcher("login?
user="+username+"&&pwd="+pwd+"&&btn=登录").forward(request,response);
}
}
%>
用户名:
密 码:
LoginServlet.java
packageservlet;
importjava.io.IOException;
importjavax.servlet.ServletContext;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@WebServlet("/login")
publicclassLoginServletextendsHttpServlet{
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
this.doPost(req,resp);
}
@Override
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
Stringbtn=req.getParameter("btn");
Stringname=req.getParameter("user");
Stringpwd=req.getParameter("pwd");
if("登录".equals(btn)){
if("admin".equals(name)&&"admin".equals(pwd)){
StringtimeLength=req.getParameter("date");/*name属性选择器中是页面上可以看见的键值变量*/
intdays=0;
if(timeLength!
=null){
days=Integer.parseInt(timeLength);
}
if(days!
=0){
Cookieusernamecookie=newCookie("username",name);
Cookieuserpwd=newCookie("userpwd",pwd);
usernamecookie.setMaxAge(days*24*3600);
userpwd.setMaxAge(days*24*36000);
resp.addCookie(usernamecookie);
resp.addCookie(userpwd);
}
req.getSession().setAttribute("userName",name);
resp.sendRedirect("index.jsp");
}
}
}
}