<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
欢迎您:
<%
String uname=(String)session.getAttribute("uname");
if(uname==null){
//如果用户没有登录,跳转到登录页面
response.sendRedirect("userLogin.jsp");
}else{
out.print(uname);
}
//jsp --> java --> class --> 服务器端执行 --> 服务器端的执行结果 发送到浏览器
%>
<a href="loginOut.jsp">退出</a>
</body>
</html>
<html>
<head>
<title>Title</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$(function () {
$("#btn").bind("click", function () {
var userName = $.trim($("#userName").val());
var password = $.trim($("#password").val());
if (userName == "" || password == "") {
$("#error").html("账户或者密码不能为空").css("color", "red");
return;
}
//清空错误信息
$("#error").html("");
//表单提交
$("#loginForm")[0].submit();
});
});
</script>
</head>
<body>
<%
String mes=(String)request.getAttribute("mes");
if(mes==null){
mes="";
}
%>
<%
//获得用户的cookie信息 将cookie中的信息自动添加到文本中
Cookie [] cookies= request.getCookies(); //获得请求中的cookie数据
String cookieUserNameValue="";
if(cookies!=null){ //判断请求中是否含有cookie数据,如果有
for(Cookie temp:cookies){ //遍历cookie中的数据
if(temp.getName().equals("cookieUserName")){ //判断下当前的cookie的名字如果是cookieUserName
cookieUserNameValue= temp.getValue(); //此cookie保存的数据,就是显示的数据
}
}
}
%>
<form name="loginForm" id="loginForm" method="post" action="loginSuccess.jsp">
<p id="error"><%=mes%></p>
<p>
用户名: <input type="text" name="userName" id="userName" value="<%=cookieUserNameValue%>"/>
</p>
<p>
密码:<input type="password" name="password" id="password"/>
</p>
<input type="button" value="登录" id="btn"/>
</form>
</body>
</html>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
session.invalidate(); //删除session中的数据
//session.removeAttribute("uname"); //删除session中的uname属性
response.sendRedirect("userLogin.jsp"); //跳转到登录页面
%>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021-07-30
Time: 10:05
To change this template use File | Settings | File Templates.
Post方式传递参数中文乱码问题:
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
GET方式传递参数中文乱码问题:
方式一: new String(param.getBytes(),"utf-8");
方式二: server.xml上
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
转发与重定向的区别:
1 转发的浏览器的地址不会关闭 重定向浏览器的地址会改变
2 转发以后request作用域中的值会保留下来 重定向request作用域的值就会丢失
3 转发不能跳转到外部应用程序 重定向可以跳转到外部程序
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
request.setCharacterEncoding("utf-8"); //修改请求的编码格式
response.setCharacterEncoding("utf-8"); //修改响应的编码格式
String userName=request.getParameter("userName");
String password=request.getParameter("password");
if("admin".equals(userName) && "123456".equals(password)){//判断帐号密码是否正确
session.setAttribute("uname",userName); //登录成功以后保存登录信息
//session.setMaxInactiveInterval(1800); //设置session的过期时间
String id=session.getId(); //获得session的id
System.out.println(id); //控制台打印sessionId
Cookie cookie=new Cookie("cookieUserName",userName); //创建cookie对象
response.addCookie(cookie); //向浏览器发送数据
cookie.setMaxAge(-1); //cookie过期时间的单位是什么?
//页面跳转到欢迎页
RequestDispatcher requestDispatcher= request.getRequestDispatcher("/welcome.jsp");
requestDispatcher.forward(request,response);
}else{
request.setAttribute("mes","账户或者密码错误!!!");
//通过转发进行页面跳转以后,能从request作用域中获得 转发之前保存在request作用域中的值
RequestDispatcher requestDispatcher=
request.getRequestDispatcher("/userLogin.jsp");
requestDispatcher.forward(request,response); //登录失败页面转发到登录页面
// response.sendRedirect("http://www.baidu.com");
}
%>