码迷,mamicode.com
首页 > 编程语言 > 详细

javaweb 后台知识点

时间:2019-06-25 09:56:16      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:tps   hand   code   目录   void   转发   登录   https   连接   

登录失败

? 直接在里面写的东西,是当页面加载完后就会弹出来。

加了斜杠就是绝对路径。在转发与重定向中不同,转发中斜杠是项目的根路径,而重定向是8080的根路径。

对于转发来说,因为返回的时候,把request,response 也都返回去了,因此可以通过这两个带点东西回去。

request.setAttribute("name",name);
request.setAttribute("用户名或密码错误",err);

jsp 接收request的信息:

直接在value中加上¥{name} 就可以拿到request返回的值了。

甚至可以在jsp中接收本来没有 的值,实现Servlet 与jsp的通信。

<span>${err}<span>

登陆成功

? 后台需要把登录成功的信息,例如用户名反馈给前台,但是不通过request,利用 session就可以了。

需要通过传信息,如果是转发会有区别,转发地址栏不变(还是Servlet的地址)。

  • new BeanListHandler<>(User.class) 这其中会调用javabean User的默认的构造函数。因此User类中必须有空的构造函数,否则会报SQL错误。

所以登录必须要用重定向。

String path =request.getContextPath();
response.sendRedirect(path+index.jsp);

转发重定向的区别

? 当是转发时,相当于Servlet只是提供了一个代理的功能,request的作用域是一次请求,客户只发送了一次请求到Servlet,Servlet将要跳转的内容返回了客户,地址不变。

? response ,客户发送了两次请求,Servlet将下一个的地址返回给客户,用户再次请求这个新的地址。所以是两次链接。

Session

  • WebContent 其实是IDE为了方便建立的文件夹,真正的Tomcat里面没有这个,它里面的东西其实都在项目的根目录。

Http是一种短连接,一来一回就断掉了,不记录状态。登录信息放到服务器端用Session,客户端保留用 cookie,Session 是服务器为每一个客户端创建的一个Session对象,30分钟自动销毁(他会记录最后访问时间)。服务器通过 uuid 来记录每一个客户端,把 session 编号会写到cookie里面。

  1. 获取session

    HttpSession session=request.getSession();//从后往前看。
    session.setAttribute("name",name);//可以把整个javabean都返回去。
  2. 在首页中进行判断,需要用到jstl标签。

    需要导进去jar包, standard和jstl包

    <%@tablib prefix ="c" uri=" 。。core"%>
    <c:if test="${user!=null}"></c:if>  //这里user为bean
    欢迎${user.username}登录  //直接写属性名,不用get方法
    <c:if test="${user==null}"></c:if>  //这里user为bean
    //这里写未登录的状态
    退出登录

    ? 这个内容是在登录成功后才显示出来的,方法是

    动态绝对路径/servelt?method=logout
    由此也可看出,向Servlet传值也不是非得通过表单,通过href也可以。

    ? 后台退出登录的方法:

     private void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
         //获取session
         HttpSession session = request.getSession();
         session.invalidate();//使Session退出失效
         String path = request.getContextPath();  //重定向
         response.sendRedirect(path + "/index.jsp");
     }

常量

? 设置常量定义接口,类也可以,但是接口中只有final static的常量,因此直接 string 声明就可以。

javaweb 后台知识点

标签:tps   hand   code   目录   void   转发   登录   https   连接   

原文地址:https://www.cnblogs.com/HyPhoenix/p/11080699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!