简单实用jstl实现“登录|注册”
package com.ceshi; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.SimpleTagSupport; public class UserStatus extends SimpleTagSupport { private String sessionKey; public String getSessionKey() { return sessionKey; } public void setSessionKey(String sessionKey) { this.sessionKey = sessionKey; } @Override public void doTag() throws JspException, IOException { Object obj=this.getJspContext().getAttribute(sessionKey, PageContext.SESSION_SCOPE); if(obj==null){ this.getJspContext().getOut().write("登录|注册"); } else{ this.getJspContext().getOut().write("welcome"+obj.toString()); } } }
<?xml version="1.0" encoding="UTF-8"?> <taglib 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-jsptaglibrary_2_1.xsd" version="2.1"> <description>JSTL 1.1 core library</description> <display-name>JSTL core</display-name> <tlib-version>1.1</tlib-version> <short-name>m</short-name> <uri>http://www.baidu.com/myjstl</uri> <tag> <description> </description> <name>user</name> <tag-class>com.ceshi.UserStatus</tag-class> <body-content>scriptless</body-content> <attribute> <description> Name of the exported scoped variable for the exception thrown from a nested action. The type of the scoped variable is the type of the exception thrown. </description> <name>sessionKey</name> <required>true</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag> </taglib>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@taglib prefix="m" uri="http://www.baidu.com/myjstl" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<c:set scope="session" var="uid" value="zhangsan"></c:set>
<m:user sessionKey="uid"></m:user>
</body>
</html>
实现效果如下:
未登录时: