【JSP】02模拟登陆注册页面

一、工具准备

  1. idea新建web工程
    【JSP】02模拟登陆注册页面_第1张图片
  2. 配置Tomcat(选择本地自己下载的tomcat,并在idea中设置)
    【JSP】02模拟登陆注册页面_第2张图片
  3. 在library中导入编写代码的相关依赖
    【JSP】02模拟登陆注册页面_第3张图片

二、源代码

  1. 登陆页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
	<%--<meta http-equiv="Content-Type" content="text/html";charset="UTF-8">--%>
	<title>登陆页面</title>
</head>
<body>

	<form action="show.jsp" method="GET"> 
		
		用户名:<input type="text" name="uname"/><br/>
		密  码:<input type="password" name="upwd"/><br/>
        年  龄:<input type="text" name="uage"/><br/>
		爱  好:<br/>
		<input type="checkbox" name="uhobbies" value="足球"/>足球
	    <input type="checkbox" name="uhobbies" value="篮球" />篮球
		<input type="checkbox" name="uhobbies" value="乒乓球" />乒乓球<br/>
		<input type="submit" value="注册">

	</form>

</body>
</html>

【JSP】02模拟登陆注册页面_第4张图片2. 信息存储显示页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
	<title>show页面</title>
</head>
<body>
	<%
	    //设置编码
		request.setCharacterEncoding("utf-8");
		String name = request.getParameter("uname");
		int age = Integer.parseInt(request.getParameter("uage"));
		String  pwd = request.getParameter("upwd");
		String[] hobbies = request.getParameterValues("uhobbies");
	%>
    
    注册成功,信息如下:<br/>
    用户名:<%=name %> <br/>
    年  龄:<%=age %> <br/>
    密  码:<%=pwd %> <br/>
    爱  好: <br/>
   <%
	   for (String hobby:hobbies)
	   {
	       out.print(hobby+" ");
	   }
	%>
</body>
</html>

【JSP】02模拟登陆注册页面_第5张图片

三、遇到的问题

  1. jsp乱码: jsp执行是先编译成java,再到class运行的
    【JSP】02模拟登陆注册页面_第6张图片解决方法:在代码第一行加入<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8” %>
    【JSP】02模拟登陆注册页面_第7张图片
  2. idea 提示Cannot resolve method 'setAttribute(java.lang.String, java.lang.String),是因为没有导入相关依赖,解决方案
    卢宥晟博客https://blog.csdn.net/weixin_41298572/article/details/86767065

四、 关于Cookie和Session

  1. Cookie:服务端产生的,返回给客户端储存在本地的,相当于本地缓存,不是内置对象。作用:提高服务端访问效率,但是安全性差,key-value格式;
    服务端增加:response.addcookie(Cookie,cookie); //服务端发送给客户端
    客户端获取:request.getCookies(); //返回的是数组【零存整取,取只能一起获取】
  2. session就是会话:eg一次浏览+点击购买+关闭,就是一次会话,存在于服务端,是内置对象。
  3. 两者关联:客户端第一次产生会话,在服务端会产生一次session,用于保存用户信息,且自带sessionId;服务端产生cookie,里面自带key=“JSESSIONID”,value=“服务端的sessionId的值”,此时,两个就可根据sessionId一一对应,也就是说客户端与服务端就是这样关联到一起了(记住用户名密码功能)。

五、 关于请求转发request和重定向response

  1. 请求转发 2. 重定向
    地址是否改变 | 不变 | 变
    是否保留第一次请求数据 | 保留 | 不保留
    请求次数 | 1次 | 2次
  • 请求转发是服务器内部跳转到另一个jsp页面,用户不知道;
    而重定向,例如登陆页面,登陆成功,是用户>check.jsp>用户>success.jsp>用户显示登陆成功
getrequestDispatcher("b.jsp").forward(request,response)//请求转发
void sendRedirect(String location) throws InException//页面的跳转方式,重定向

你可能感兴趣的:(专业技术笔记,jsp,intellij,idea)