javaee随堂测试Jsp+ServletTest

功能点:

  1. 实现两个jsp页面,addStudent.jsp和result.jsp,前者用于增加学生信息,后者用于显示学生信息;
  2. addStudent.jsp如下示例网页所示,点击提交之后跳转到result.jsp;
  3. result.jsp点击返回之后调回addStudent.jsp;
  4. 跳转的时候需使用JSP内置对象request对象来传递参数;
  5. result.jsp显示学生的时候判断邮箱地址是否合法(其中是否有@),必须使用JavaBean;
  6. 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界面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值