创建工程
Dynamic Web Project 重要目录如下
UserController.java
package com.foot.controller;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns= {"*.do"})
public final class UserController extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("张三", 21);
map.put("李四", 13);
map.put("王五", 26);
req.setAttribute("map", map);
req.getRequestDispatcher("/index.jsp").forward(req, resp);//转发到
}
}
MyTag.java
package com.foot.tag;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public final class MyTag extends SimpleTagSupport {
private String map;
public String getMap() {
return this.map;
}
public void setMap(String map) {
this.map = map;
}
@Override
public void doTag() throws JspException, IOException {
System.out.println(this.map);
PageContext pageContext = (PageContext)getJspContext();
HttpServletRequest hreq = (HttpServletRequest) pageContext.getRequest();
@SuppressWarnings("unchecked")
Map<String, Integer> maps = (HashMap<String, Integer>)hreq.getAttribute("map");
for (String key : maps.keySet()) {
pageContext.getOut().println("<tr>");
pageContext.getOut().println("<td>");
pageContext.getOut().println(key);
pageContext.getOut().println("</td>");
pageContext.getOut().println("<td>");
pageContext.getOut().println(maps.get(key));
pageContext.getOut().println("</td>");
pageContext.getOut().println("</tr>");
}
}
}
mytag.tld
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<!-- 标签的描述 -->
<description>My tag library exercising SimpleTag handlers.</description>
<!-- 标签的版本 -->
<tlib-version>1.0</tlib-version>
<!-- 标签的名字 -->
<short-name>MyTag</short-name>
<!-- 标签的唯一id值 -->
<uri>http://MyTag.com/core</uri>
<tag>
<description>Repeats the body of the tag</description>
<name>MyTag</name>
<tag-class>com.foot.tag.MyTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>map</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://MyTag.com/core" prefix="mytag"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>带属性标签</title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<mytag:MyTag map="map111"/>
</table>
</body>
</html>
web.xml自动生成的即可
测试
http://localhost:8080/JavaBeanTest/index.do
访问index.do是因为@WebServlet(urlPatterns= {“*.do”})
servlet接收以这个结尾传来的内容,名字index不重要。