一、在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把值传递给跳转页面。