JSP页面引用标签WelcomeTag.jsp
<%@page contentType=\<%@taglib uri=\ prefix=\
测试自定义标签
4. 通过继承TagSupper类实现输出welcome的自定义标签。
WelcomeTagSupport.java
package demo.tag; /**
*自定义标签WelcomeTagSupport */
import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.util.Hashtable; import java.io.Writer; import java.io.IOException; import java.util.Date;
public class WelcomeTagSupport extends TagSupport { /**
*开始标签时的操作 */
public int doStartTag()throws JspException{ try{ }
return Tag.EVAL_BODY_INCLUDE;//返回EVAL_BODY_INCLUDE,表示计算标签体 } /**
*结束标签时的操作 */
public int doEndTag() throws JspException{ try{
pageContext.getOut().write(\,Welcome!\
17
pageContext.getOut().write(\
throw new JspTagException(\
}catch(IOException e){
}catch(IOException e){ }
return Tag.EVAL_PAGE; } }
throw new JspTagException(\
标签库描述文件mytag.tld
5. 通过继承BodyTagSupport类实现welcome迭代输出。 WelcomeBodyTagSupport.java
package demo.tag;
import java.io.IOException;
import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.*;
public class WelcomeBodyTagSupport extends BodyTagSupport{
private int count; //控制处理标签内容体的次数 /* 属性设置 */
public void setCount(int count){ }
public int doStartTag() throws JspException { if(this.count>0){
System.out.println(\ return Tag.EVAL_BODY_INCLUDE; }else{
return Tag.SKIP_BODY; } }
public void doInitBody() throws JspException { System.out.println(\ }
public void setBodyContent(BodyContent content) { System.out.println(\ bodyContent=content; }
this.count = count;
18
public int doAfterBody() throws JspException { if((--count)>0){
System.out.println(\:\ return BodyTag.EVAL_BODY_AGAIN; }
return BodyTag.SKIP_BODY; }
public int doEndTag() throws JspException { System.out.println(\ if(bodyContent!=null){
try { //输出缓冲区里面的out中的内容
bodyContent.writeOut(bodyContent.getEnclosingWriter()); } catch (IOException e) { e.printStackTrace(); } }
return super.doEndTag(); }
}// end of class
标签库描述文件mytag.tld
… …
第16章 Web开发的应用
采用MVC模式编写用户登录验证程序。 系统中的文件可参考表16-5提示:
表16-5 用户登录模块划分 分类 JSP页面 文件名 welcome.jsp login2.jsp loginerr.jsp JavaBean
UserCheckBean.java 19
UserBean.java 作用 成功登录显示欢迎界面。 进行登录界面 登录错误重定向页面 保存多个用户信息,可以在多个JSP页面中传递用户数据 对用户名和密码进行验证 Servlet ControllerServlet 作为控制器,接收客户登录的信息,调用JavaBean组件对用户登录信息进行验证,并根据验证结果调用JSP页面返回给客户端。 部署描述符 web.xml 部署Servlet文件 welcome.jsp
<%@ page contentType=\ 欢迎你, login2.jsp <%@ page contentType=\<% //得到上下文路径,对于Servlet 2.5规范,还可以使用下面注释中的代码 //String path = application.getContextPath(); String path = request.getContextPath(); %>
loginerr.jsp
<%@ page contentType=\<%
String path = request.getContextPath(); %>
UserBean.java
package beans;
public class UserBean {
private String name; private String password;
20

