1. 程式人生 > >javaee隨堂測試Jsp+ServletTest

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介面