在webapps下建立项目文件
login.html
<html>
<head>
<title>helloapp</title>
</head>
<body>
<form name="loginForm" method="POST" action="dispatcher">
<table>
<tr>
<td><div align="right">User Name:</div></td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td><div align="right">Password:</div></td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="submit"></td>
<td><input type="reset" name="reset" value="reset"></td>
</tr>
</table>
</form>
</body>
</html>
DispatcherServlet.java
package mypack;
import javax.servlet.*;
import java.io.IOException;
//d:\jdk\jdk8\bin\javac.exe -encoding utf-8 -classpath d:\apache-tomcat-8.5.69\lib\servlet-api.jar -sourcepath src -d d:\apache-tomcat-8.5.69\webapps\helloapp\WEB-INF\classes d:\apache-tomcat-8.5.69\webapps\helloapp\src\mypack\DispatcherServlet.java
public class DispatcherServlet extends GenericServlet {
private String target = "/hello.jsp";
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
//读取表单中的用户名
String username = request.getParameter("username");
//读取表单中的口令
String password = request.getParameter("password");
//在request对象中添加USER属性
request.setAttribute("USER",username);
//在request对象中添加PASSWORD属性
request.setAttribute("PASSWORD",password);
ServletContext context = getServletContext();
RequestDispatcher dispacher = context.getRequestDispatcher(target);
dispacher.forward(request,response);
}
}
hello.jsp文件
<%@ taglib uri="/mytaglib" prefix="mm"%>
<html>
<title>helloapp</title>
<body>
<b><mm:hello/>:<%= request.getAttribute("USER") %></b>
</body>
</html>
web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>mypack.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/dispatcher</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
</web-app>
mytaglib.tld
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib>
<!-- a tag library descriptor-->
<taglib>
<tlib-version>1.1</tlib-version>
<jsp-version>2.1</jsp-version>
<short-name>mytaglib</short-name>
<uri>/mytaglib</uri>
<tag>
<name>hello</name>
<tag-class>mypack.HelloTag</tag-class>
<body-content>empty</body-content>
<info>Just Says Hello</info>
</tag>
</taglib>
HelloTag.java
package mypack;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
//
//d:\jdk\jdk8\bin\javac.exe -encoding utf-8 -classpath d:\apache-tomcat-8.5.69\lib\jsp-api.jar -sourcepath src -d D:\apache-tomcat-8.5.69\helloapp\WEB-INF\classes\mypack D:\apache-tomcat-8.5.69\helloapp\src\mypack\HelloTag.java
public class HelloTag extends TagSupport {
/**当JSP解析器遇到hello标签的结束标志时,调用此方法*/
public int doEndTag() throws JspException{
try{
//打印字符串"Hello"
pageContext.getOut().print("HELLO:");
}catch(Exception e){
throw new JspTagException(e.getMessage());
}
return EVAL_PAGE;
}
}