学习目标:
- 实验名称:JSP内置对象
- 目的:掌握JSP页面的全部语法。能够编写基本的JSP网页。
学习内容:
1、实验
■地点:周三2单元,10617综合一实验室,自带电脑
■目的:掌握各种内置对象的主要使用方法,能使用内置对象完成具体的功能。
■内容:
◆(1 )改进注册功能,注册成功将用户注册信息保存在application中。(2)改进登录功能,将用户登录信息跟application中存储的进行比对校验,若登录成功进入主页并将账号存入session ,若登录失败回到登录页面。
■要求:
实验课前着手实验
>实验课最后半小时组长组织小组演示验收,互评打分,组长将最终成绩发给老师
◆本次写实验报告,上传学习通
实验课上小组互评打分标准:
90-100分:完成实验,运行效果好。
80-89分:基本完成实验或有瑕疵,运行效果- -般。70-79分:实验进行了一半以上。
60-69 :实验进行了不到- -半。
60分以下:还在学习消化,没有开始实验。
学习时间:
- 周一至周五晚上 7 点—晚上9点
- 周六上午 9 点-上午 11 点
- 周日下午 3 点-下午 6 点
学习产出:
RegisterServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
@WebServlet("/registerServlet")
public class RegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
ServletContext application=this.getServletContext();
PrintWriter out = response.getWriter();
String path = request.getContextPath();
String username = request.getParameter("username");
String password = request.getParameter("password");
request.getSession().setAttribute("username",username);
HashMap<String,String> userMap = (HashMap<String,String>)application.getAttribute("userMap");
if(userMap==null){
userMap = new HashMap<String,String>();
userMap.put(username,password);
application.setAttribute("userMap",userMap);
out.print("注册成功! 即将返回主页面");
response.setHeader("refresh","2;url="+path+"/index.jsp");
}else{
if(userMap.containsKey(username)){
out.print("账号已存在! 即将返回注册页面");
response.setHeader("refresh","2;url="+path+"/register.jsp");
}else{
userMap.put(username, password);
out.print("注册成功! 即将返回主页面");
response.setHeader("refresh","2;url="+path+"/index.jsp");
}
}
}
}
LoginServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.HashMap;
import java.io.PrintWriter;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//导入session
HttpSession session = request.getSession();
//导入application
ServletContext application=this.getServletContext();
//导入out
PrintWriter out = response.getWriter();
//获取路径
String path = request.getContextPath();
String username = request.getParameter("username");
String password = request.getParameter("password");
request.getSession().setAttribute("username",username);
HashMap<String,String> userMap = (HashMap<String,String>)application.getAttribute("userMap");
if(userMap==null){
out.print("登录失败! 即将返回登录界面");
response.setHeader("refresh","2;url="+path+"/login.jsp");
}else{
String pwd = userMap.get(username);
if(pwd!=null && pwd.equals(password)){
session.setAttribute("username", username);
out.print("登录成功! 即将返回主页面");
response.setHeader("refresh","2;url="+path+"/index.jsp");
}else{
out.print("登录失败! 即将返回登录界面");
response.setHeader("refresh","2;url="+path+"/login.jsp");
}
}
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<body>
<h2>欢迎来到主页面!</h2>
<%
request.setCharacterEncoding("utf-8");
String username = request.getSession().getAttribute("username").toString();
%>
<h3 style="color: red">您好,<%=username %></h3>
</body>
</html>
register.jsp
<%--
Created by IntelliJ IDEA.
User: baizhimin
Date: 2023/3/23
Time: 22:08
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Registration Page</title>
</head>
<body>
<h1>注册页面</h1>
<form action="<%=request.getContextPath()%>/registerServlet" method="POST">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<br><br>
<input type="submit" value="注册" onclick="alert('注册成功')">
</form>
<br>
<p>已有账户? <a href="login.jsp">点击登录</a></p>
</body>
</html>
Login.jsp
<%--
Created by IntelliJ IDEA.
User: baizhimin
Date: 2023/3/23
Time: 22:08
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<h1>登录页面</h1>
<form action="<%=request.getContextPath()%>/loginServlet" method="POST">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<br><br>
<input type="submit" value="登录">
</form>
<br>
<p>没有账户? <a href="register.jsp">点击注册</a></p>
</body>
</html>