用Myeclipse建立一个工程,将几个页面包含在一个JSP页面中.灵活使用page指令中的errorPage属性与isErrorPage属性,实现一个出错页面以及处理出错页面。使用到: “include包含指令” “page页指令” “HTML注释”:<!— comments --> “隐藏注释”:<%-- comments --%> “声明” <%! 声明; [声明; ] ... %> “表达式” <%= 表达式 %> “脚本段” <% 代码 %> 利用<jsp:include>设计注册页(注册信息包括学号、用户名、密码、密码确认、邮件。同时包含访问量统计的功能(利用application对象)) 利用JSP设计注册处理页(验证学号是否为10位,密码与密码确认是否相同,邮件地址是否正确)。 不正确跳回注册页面(利用<jsp:forward>,<jsp:param>),处理成功后跳转到注册成功页(利用response对象),并显示所输入的用户名(中文)与密码(利用session对象)。
时间: 2023-12-26 12:04:43 浏览: 140
首先,我们需要创建一个Web项目,并在项目中创建以下JSP页面:
1. main.jsp:包含其他几个页面,同时处理错误页面。
2. register.jsp:用于用户注册,包含访问量统计的功能。
3. register_handle.jsp:处理用户注册信息,验证学号、密码和邮件地址。
以下是代码示例:
main.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主页面</title>
</head>
<body>
<jsp:include page="register.jsp" />
<%-- 这里可以包含其他页面 --%>
<%-- 处理错误页面 --%>
<%
String errorMessage = (String)request.getAttribute("javax.servlet.error.message");
if(errorMessage != null) {
out.println("<h3>出错啦,错误信息:"+errorMessage+"</h3>");
}
%>
</body>
</html>
```
register.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<jsp:include page="header.jsp" />
<h3>用户注册</h3>
<form action="register_handle.jsp" method="post">
<label>学号:</label><input type="text" name="studentId" /><br />
<label>用户名:</label><input type="text" name="username" /><br />
<label>密码:</label><input type="password" name="password" /><br />
<label>确认密码:</label><input type="password" name="confirmPassword" /><br />
<label>邮件:</label><input type="text" name="email" /><br />
<input type="submit" value="提交" />
</form>
<%-- 访问量统计 --%>
<%
int count = 0;
if(application.getAttribute("count") != null) {
count = (int)application.getAttribute("count");
}
count++;
application.setAttribute("count", count);
out.println("本站访问量:"+count);
%>
<jsp:include page="footer.jsp" />
</body>
</html>
```
register_handle.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册处理页面</title>
</head>
<body>
<jsp:include page="header.jsp" />
<%
String studentId = request.getParameter("studentId");
String username = request.getParameter("username");
String password = request.getParameter("password");
String confirmPassword = request.getParameter("confirmPassword");
String email = request.getParameter("email");
boolean isError = false;
String errorMessage = "";
// 验证学号是否为10位
if(studentId.length() != 10) {
isError = true;
errorMessage += "学号必须为10位;";
}
// 验证密码是否与确认密码相同
if(!password.equals(confirmPassword)) {
isError = true;
errorMessage += "密码与确认密码不一致;";
}
// 验证邮件地址是否正确
if(!email.matches("\\w+@\\w+\\.\\w+")) {
isError = true;
errorMessage += "邮件地址格式不正确;";
}
if(isError) {
// 跳回注册页面
request.setAttribute("errorMessage", errorMessage);
request.getRequestDispatcher("register.jsp").forward(request, response);
} else {
// 处理成功,跳转到注册成功页面
session.setAttribute("username", username);
session.setAttribute("password", password);
response.sendRedirect("register_success.jsp");
}
%>
<jsp:include page="footer.jsp" />
</body>
</html>
```
我们还需要创建以下公共页面:
header.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>头部</title>
</head>
<body>
<header>
<h1>Web项目</h1>
<nav>
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">关于我们</a></li>
<li><a href="#">联系我们</a></li>
</ul>
</nav>
</header>
</body>
</html>
```
footer.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>底部</title>
</head>
<body>
<footer>
<p>版权所有 © 2019 Web项目</p>
</footer>
</body>
</html>
```
register_success.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册成功页面</title>
</head>
<body>
<jsp:include page="header.jsp" />
<h3>恭喜您,注册成功!</h3>
<p>用户名:${sessionScope.username}</p>
<p>密码:${sessionScope.password}</p>
<jsp:include page="footer.jsp" />
</body>
</html>
```
注意:
1. 在main.jsp中使用<%-- comments --%>隐藏注释,以避免在包含其他页面时出现问题。
2. 在register.jsp中使用<jsp:include>包含header.jsp和footer.jsp,以实现页面的复用。
3. 在register.jsp中使用<jsp:include>包含访问量统计的功能。
4. 在register_handle.jsp中使用request.getRequestDispatcher()和request.getRequestDispatcher().forward()实现跳回注册页面。
5. 在register_handle.jsp中使用response.sendRedirect()实现跳转到注册成功页面。
6. 在register_success.jsp中使用EL表达式${sessionScope.username}和${sessionScope.password}获取session中的值。
7. 在register_handle.jsp中使用正则表达式验证邮件地址格式。
8. 在main.jsp中使用request.getAttribute("javax.servlet.error.message")获取错误信息,并输出到页面中。
阅读全文