Java-Web 一 熟悉工作流程

一、在Tomcat中配置网站

        找到Tomcat的安装目录,找到webapps文件夹,所有的网站项目都是在这个文件夹里。在webapps中新建文件夹,例如:文件夹名字叫做 work_one,jsp代码可直接放在work_one内。在work_one里面新建WEB-INF文件夹,web.xml文件放在WEB-INF文件夹下。在WEB-INF文件加下新建classes文件夹,classes文件夹下再新建bean、servlets文件夹,与逻辑有关的代码放在servlets下(存放编译过的.class文件)。

二、练手代码

PasswordInput.jsp

<%@ page contentType="text/html;charset=utf-8"%>
<script language="JavaScript">
  function isValidate(form){
     head = form.heads.value;
     tail = form.tails.value;
     pass = form.testpass.value;
     
     //判断头部
     if(!minLength(head,3)){
        alert("密码头部长度小于三位");
        form.heads.focus();
        return false;
     }
     if(!maxLength(head,5)){
        alert("密码头部长度大于五位");
        form.heads.focus();
        return false;
     }
     
     //判断尾部
      if(!minLength(tail,3)){
        alert("密码尾部长度小于三位");
        form.tails.focus();
        return false;
     }
     if(!maxLength(tails,5)){
        alert("密码尾部长度大于五位");
        form.tails.focus();
        return false;
     }
     return true; 
  }
  
  function minLength(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>
<html>
  <head>
    <title>首页</title>
  </head>
  <body>
    <form name="form1" action="PasswordInput" method="post" οnsubmit="isValidate(form1)">
               请输入要联系密码的头部和尾部<br>
               密码头部:<input type="text" name="heads"><br>
                密码尾部:<input type="text" name="tails"><br>
               练习输入密码:<input type="password" name="testpass"><br>
         <input type="reset" value="重置"> 
         <input type="submit" value="提交"><br>    
    </form>
  </body>
</html>

failure.jsp


<%@ page contentType="text/html;charset=utf-8"%>
<html>
  <head>
    <title>失败界面</title>
  </head>
  <body>
   <h2>您练习输入的密码错误!</h2>
   <br> 输入的密码头部为:${sessionScope.beans.head}
	<br> 输入的密码头部为:${sessionScope.beans.tail}
	<br> 您练习输入的密码为:${sessionScope.beans.pass}
  </body>
</html>

success.jsp

<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>成功界面</title>
</head>
<body>
	<h2>您练习输入的密码正确!</h2>
	<br> 输入的密码头部为:${sessionScope.beans.head}
	<br> 输入的密码头部为:${sessionScope.beans.tail}
	<br> 您练习输入的密码为:${sessionScope.beans.pass}
</body>
</html>

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-name>TestServlet</servlet-name>
     <servlet-class>servlets.PasswordTestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>TestServlet</servlet-name>
     <url-pattern>/PasswordInput</url-pattern>
  </servlet-mapping>
   <welcome-file-list>
        <welcome-file>PasswordInput.jsp</welcome-file>
    </welcome-file-list>
</web-app>

PasswordTestServlet.java

package servlets;

import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;

import bean.*;

public class PasswordTestServlet extends HttpServlet{
   public void doGet(HttpServletRequest request,HttpServletResponse response)
      throws IOException,ServletException{
		
    	String heads = request.getParameter("heads");
    	String tails = request.getParameter("tails");
    	String testpass = request.getParameter("testpass");
    	
    	PasswordCheckUserBean bean = new PasswordCheckUserBean();
    	
    	bean.setHead(heads);
    	bean.setTail(tails);
    	bean.setPass(testpass);
    	
    	boolean b = bean.validate();
    	
        String forward;
         HttpSession session = request.getSession();
        if(b){ 
            session.setAttribute("beans",bean);
        	forward = "success.jsp";
        }else{
            session.setAttribute("beans",bean);
        	forward = "failure.jsp";
        }
        
         RequestDispatcher dispatcher = request.getRequestDispatcher(forward);
        
        dispatcher.forward(request,response);
		
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response)
      throws IOException,ServletException{
      doGet(request,response);
   }
}

PasswordCheckUserBean.java

package bean;

public class PasswordCheckUserBean {
	private String head;
	private String tail;
	private String pass;

	public String getHead() {
		return head;
	}

	public String getTail() {
		return tail;
	}

	public String getPass() {
		return pass;
	}

	public void setHead(String head) {
		this.head = head;
	}

	public void setTail(String tail) {
		this.tail = tail;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	public boolean validate() {
		return checkHead(this.head, this.pass)
				&& checkTail(this.tail, this.pass);
		// String h = this.head;
		// String t = this.tail;
		// String p = this.pass;
		// int index = 0;
		// for(int i = 0; i < h.length();i++){
		// if(h.charAt(i)!=p.charAt(i)){
		// return false;
		// }
		// }
		// index = p.length() - t.length();
		// for(int i = 0; i < t.length();i++){
		// if(t.charAt(i)!=p.charAt(i+index)){
		// return false;
		// }
		// }
		// return true;
		// String h = "^"+this.head;
		// String t = this.tail+"$";
		// if((pass.matches(h))&&(pass.matches(t))){
		// return true;
		// }
		// else return false;
	}

	/**
	 * 字符串匹配,前缀
	 * 
	 * @param h
	 * @param p
	 * @return 匹配成功为true
	 */
	public boolean checkHead(String h, String p) {
		if(p.length()<h.length()) return false;
		for (int i = 0; i < h.length(); i++) {
			if (h.charAt(i) != p.charAt(i)) {
				return false;
			}
		}
		return true;
	}

	/**
	 * 字符串匹配,后缀
	 * 
	 * @param t
	 * @param p
	 * @return 匹配成功为true
	 */
	public boolean checkTail(String t, String p) {
		int index = p.length() - t.length();
		if(index<0) return false;
		for (int i = 0; i < t.length(); i++) {
			if (t.charAt(i) != p.charAt(i + index)) {
				return false;
			}
		}
		return true;
	}
}

三、错误总结

      1、起初web.xml 配置错误,出现404错误。原因映射关系没搞清楚。

    在manager中直接打开项目,出现404错误。原因未配置欢迎文件。

  









     2、java文件中误删去包名,出现500错误

 

     3、manager中如何部署项目

 


四、总结

   代码比较简单,主要在于理解运行流程:先是根据欢迎文件出现欢迎界面,然后填写表单,用javascript验证表单,根据action属性的值,把表单提交给对应的servlet文件,servlet文件再调用bean文件进一步验证,并根据bean的返回结果进行逻辑判断,实现页面跳转,并利用session把值传递给跳转页面。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值