功能点:
- 实现两个jsp页面,addStudent.jsp和result.jsp,前者用于增加学生信息,后者用于显示学生信息;
- addStudent.jsp如下示例网页所示,点击提交之后跳转到result.jsp;
- result.jsp点击返回之后调回addStudent.jsp;
- 跳转的时候需使用JSP内置对象request对象来传递参数;
- result.jsp显示学生的时候判断邮箱地址是否合法(其中是否有@),必须使用JavaBean;
- result.jsp下使用Servlet显示这是本站第多少次被访问。
工程结构如下所示
userbean代码如下
package userbean;
public class Userbean {
private String age;
private String name;
private String mail;
private boolean eamil;
public Userbean()
{
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public boolean isEamil()
{
// 正则表达式,定义邮箱格式
String regex = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
// matches()方法可判断字符串是否与正则表达式匹配
if (mail.matches(regex)) {
// eamil为真
eamil = true;
}
// 返回eamil
return eamil;
}
}
过滤器myfliter 显示第几次访问网站
package com.fliter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
/**
* 统计过滤器
*/
public class myfliter implements Filter {
// 来访数量
private int count;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 获取初始化参数
String param = filterConfig.getInitParameter("count");
// 将字符串转换为int
count = Integer.valueOf(param);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 访问数量自增
count ++;
// 将ServletRequest转换成HttpServletRequest
HttpServletRequest req = (HttpServletRequest) request;
// 获取ServletContext
ServletContext context = req.getSession().getServletContext();
// 将来访数量值放入到ServletContext中
context.setAttribute("count", count);
// 向下传递过滤器
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
addstudent.jsp代码
<%@ page contentType="text/html; charset=utf-8" language="java"
pageEncoding="utf-8" errorPage=""%>
<%@ page import="java.sql.*" %>
<head>
<title>增加</title>
</head>
<body>
<form id="form" action="result.jsp" method="post">
姓名: <br /> <input type="text" name="name"><hr />
年龄: <br /> <input type="text" name="age"><hr />
邮箱: <br /> <input type="text" name="mail"><hr />
<input type="submit" value="提交">
<input type="reset" value="重置">
</form>
</body>
</html>
result.jsp代码
<%@ page contentType="text/html; charset=utf-8" language="java"
pageEncoding="utf-8" errorPage=""%>
<%@ page import="userbean.Userbean" %>
<head>
<title>结果</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String age = request.getParameter("age");
String mail = request.getParameter("mail");
Userbean student=new Userbean();
student.setName(name);
student.setAge(age);
student.setMail(mail);
if(student.isEamil()){
out.print(mail + " <br>是一个标准的邮箱地址!<br>");
}else{
out.print(mail + " <br>不是一个标准的邮箱地址!<br>");
}
out.print(" <br /><hr />");
out.print("姓名:"+name+"<br> <br>");
out.print("年龄:"+age+"<br> <br>");
out.print("邮箱:"+mail+"<br> <br>");
%>
<h2>
欢迎光临,<br>
您是本站的第【
<%=application.getAttribute("count") %>
】位访客!
</h2>
<a href="addstudent.jsp">返回</a>
</body>
</html>
web.xml配置,主要是过滤器和首页的注册
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>10.3</display-name>
<welcome-file-list>
<welcome-file>addstudent.html</welcome-file>
<welcome-file>addstudent.htm</welcome-file>
<welcome-file>addstudent.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 过滤器声明 -->
<filter>
<!-- 过滤器的名称 -->
<filter-name>com.fliter.myfliter</filter-name>
<!-- 过滤器的完整类名 -->
<filter-class>com.fliter.myfliter</filter-class>
<!-- 设置初始化参数 -->
<init-param>
<!-- 参数名 -->
<param-name>count</param-name>
<!-- 参数值 -->
<param-value>0</param-value>
</init-param>
</filter>
<!-- 过滤器映射 -->
<filter-mapping>
<!-- 过滤器名称 -->
<filter-name>com.fliter.myfliter</filter-name>
<!-- 过滤器URL映射 -->
<url-pattern>/addstudent.jsp</url-pattern>
</filter-mapping>
</web-app>
addstudent界面
result界面