javaweb 后台知识点
Posted hyphoenix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb 后台知识点相关的知识,希望对你有一定的参考价值。
登录失败
? 直接在里面写的东西,是当页面加载完后就会弹出来。
加了斜杠就是绝对路径。在转发与重定向中不同,转发中斜杠是项目的根路径,而重定向是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里面。
获取session
HttpSession session=request.getSession();//从后往前看。 session.setAttribute("name",name);//可以把整个javabean都返回去。
在首页中进行判断,需要用到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 后台知识点的主要内容,如果未能解决你的问题,请参考以下文章