JSP入门之实验指导一

一 实验内容:

编写一个Java Web项目,实现密码输入练习的功能。该项目包含三个页面,在输入页面输入要练习输入的头部和尾部,在密码框中输入头部与尾部的连接字符串,系统首先判断头部和尾部的字符串是否满足长度要求,其次判断是否输入正确,如果正确输入,跳转到正确结果页面,如果错误输入,跳转到错误结果页面。

 实验步骤:

1、创建项目名称为PasswordTest,创建其中的所需的目录

2、在根目录下创建PasswordInput.jsp,该页面具有一行提示文字:“请输入要联系密码的头部和尾部:”,两个文本框,其前有文字“密码头部:”和“密码尾部:”,一个密码框,其前有文字“练习输入密码:”,一个重设按钮,一个提交按钮

3PasswordInput.jsp页面中密码头部和密码尾部的长度要求为3-5个,不符合要求会提示“密码头部长度小于3位”/“密码头部长度大于5位”/“密码尾部长度小于3位”/“密码尾部长度大于5位”

3、在合适位置建立PasswordCheckUserBean.java类,用于判断输入的密码是否为密码头部和密码尾部的连接字符串

4、在合适位置建立控制器PasswordTestServlet.java类,获取PasswordInput.jsp传来的密码头部、密码尾部和输入的密码,调用PasswordCheckUserBean类进行判断,如果成功,跳转到success.jsp页面,否则跳转到failure.jsp页面

5、在根目录下创建common目录,创建success.jsp页面,该页面第一行提示“您练习输入的密码正确!”,第二行提示 “输入的密码头部为:”+用户输入的密码头部,第三行提示 “输入的密码尾部为:”+用户输入的密码尾部,第四行提示 “您练习输入的密码为:”+用户输入的密码。

6、在根目录下创建common目录,创建failure.jsp页面,该页面第一行提示“您练习输入的密码错误!”,第二行提示 “输入的密码头部为:”+用户输入的密码头部,第三行提示 “输入的密码尾部为:”+用户输入的密码尾部,第四行提示 “您练习输入的密码为:”+用户输入的密码。

7、在合适的位置创建web.xml,配置PasswordTestServlet,并配置默认显示的欢迎页面为PasswordInput.jsp

8、将项目部署到Tomcat服务中,运行并调试成功。依次试验Tomcat的四种Web应用部署方式。

 代码部分

1.PasswordInput.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'PasswordInput.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->


<script language="JavaScript">
function isValidate(form){
//得到用户输入的信息
password=form.password.value;
first=form.first.value;
last=form.last.value;

if(!MiniLength(first,3)){
alert("密码头部长度小于3位");
form.first.focus();
return false;
}

if(!MaxLength(first,5)){
alert("密码头部长度大于5位");
form.first.focus();
return false;
}

if(!MiniLength(last,3)){
alert("密码尾部长度小于3位");
form.first.focus();
return false;
}

if(!MaxLength(last,5)){
alert("密码尾部长度大于5位");
form.first.focus();
return false;
}

return true;
   }
function MiniLength(str,length){
if(str.length>=length)
return true;
else
return false;
}

function MaxLength(str,length){
if(str.length<=length)
return true;
else
return false;
   }


</script>
  </head>
 <body>
  <form name="form1" action="PasswordTestServlet " method="post" οnsubmit="return isValidate(form1)">
    请输入要练习密码的头部与尾部:<br>
    密码头部: <input type="text" name ="first"> <br>
     密码尾部: <input type="text" name ="last">  <br>
     练习输入密码: <input type="password" name ="password">  <br>
  <input type="reset" value="重置">
    <input type="submit" value="提交"><br>
  </form>
  </body>
</html>

2.PasswordTestServlet.java

package servlets;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import bean.PasswordCheckUserBean;

@SuppressWarnings("serial")
public class PasswordTestServlet extends HttpServlet {


//servlet根据需要完成的功能只需要完成服务类方法doGet()即可
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

//request.getParameter用于获取表单中单元素的值
String password0 =request.getParameter("password");
String first0 =request.getParameter("first");
String last0 =request.getParameter("last");

//创建UserBean对象
PasswordCheckUserBean password1 =new PasswordCheckUserBean();


//调用业务方法:判断first+last是否等于password
boolean b =password1.validate(password0,first0,last0);

//要想获取session信息,先获取session对象
String forward;
HttpSession session =request.getSession(true);
session.setAttribute("first",first0);
//向request中存储信息,前面是信息的名字, 后面是存储对象本身

session.setAttribute("last",last0);
session.setAttribute("password", password0);
 
 
if(b){
forward="common/success.jsp";
}else{
forward ="common/failure.jsp";
}

//RequestDispatcher是一个接口,可以完成重定向的功能,也就是说能够实现页面的跳转
RequestDispatcher dispatcher =request.getRequestDispatcher(forward);//指明界面要转向forward
dispatcher.forward(request, response);//完成转向还需要调用此方法    
//当前文件和转向的目标文件在执行的过程中,使用的request对象是相同的,也就是说两个文件属于同一次请求
}


//实现doPost方法,只需调用doGet方法就行,目的是为了Servlet能够响应post请求
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


doGet(request,response);

}


}


3.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    
    <!-- 第一部分是Servlet的声明 --> 
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>PasswordTest</servlet-name> <!--用于声明Servlet的名字-->
    <servlet-class>servlets.PasswordTestServlet</servlet-class><!--用于声明Servlet所对应的类-->

  </servlet>


<!-- Servlet映射, 第二部分是Servlet访问方式的设置 --> 
  <servlet-mapping>
    <servlet-name>PasswordTest</servlet-name>  <!--表示Servlet的名字-->
    <url-pattern>/PasswordTestServlet</url-pattern> <!--服务器接收到请求之后会根据url-pattern查找相应的Servlet-->
  </servlet-mapping>
  
  <welcome-file-list>  <!-- 定义欢迎界面为PasswordInput.jsp --> 
    <welcome-file>PasswordInput.jsp</welcome-file>  
  </welcome-file-list>  


</web-app>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值