9

JSP课程小总结

 3 years ago
source link: https://blog.csdn.net/weixin_41731475/article/details/111924517
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.



模板:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
    	<p></p>
    </body>
</html>

1、表单提交+中文字符转码

关键代码:

  1. 获取属性值
    request.getParameter("---")
  2. 中文字符转码
    new String(request.getParameter("---").getBytes("ISO8859_1"), "UTF-8")

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <form action="show.jsp" method="post">
            <p><span>请输入姓名:</span><input type="text" name="name"/></p>
            <p>
            	<span>性别:</span>
                <input type="radio" name="sex" value="男"/>
                <input type="radio" name="sex" value="女"/>
            </p>
            <p>
            	<span>密码提示问题:</span>
                <select name="question">
                    <option value="mother">母亲生日</option>
                    <option value="father">父亲生日</option>
                </select>
            </p>
            <p>
                <span>答案:</span>
                <input type="text" name="answer">
            </p>
            <p>
                <span>选择个人喜好:</span>
                <input type="checkbox" name="like" value="爱好1"><span>爱好1</span>
                <input type="checkbox" name="like" value="爱好2"><span>爱好2</span>
                <input type="checkbox" name="like" value="爱好3"><span>爱好3</span>
            </p>
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        String name = new String(request.getParameter("name").getBytes("ISO8859_1"), "UTF-8");
        String sex = new String(request.getParameter("sex").getBytes("ISO8859_1"), "UTF-8");
        String question = new String(request.getParameter("question").getBytes("ISO8859_1"), "UTF-8");
        String answer = new String(request.getParameter("answer").getBytes("ISO8859_1"), "UTF-8");
        String[] like = request.getParameterValues("like");
        %>
        <p><span>姓名:</span><%=name %></p>
        <p><span>性别:</span><%=sex %></p>
        <p><span>问题:</span><%=question %></p>
        <p><span>答案:</span><%=answer %></p>
        <p>
            <span>喜好:</span>
            <%
            for (int i = 0; i < like.length; ++i){
            	%><%=new String(like[i].getBytes("ISO8859_1"), "UTF-8") %><%
            }
            %>
        </p>
    </body>
</html>

2、Cookie+Session

关键代码:

  1. 中文写入Cookie要转码
    <%@ page import="java.net.URLEncoder"%>
    <%@ page import="java.net.URLDecoder"%>
    URLDecoder.decode(---, "UTF-8") 解码
    URLEncoder.encode(---, "UTF-8") 编码

  2. 获取Cookie
    Cookie[] cookies = request.getCookies()

  3. 根据条件获取Cookie
    cookies[i].getName().endsWith("---")

  4. 获得Cookie值
    cookies[i].getValue()

  5. 创建Cookie
    response.addCookie(---)

  6. 自动重定向至页面
    response.setHeader("refresh", "2;URL=client.jsp")

  7. session方法
    session.setAttribute("message", sessionMessage) set会话的属性值
    session.getAttribute("message") get会话的属性值

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLEncoder"%>
<%@ page import="java.net.URLDecoder"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
	    <%
	    String welcome = "第一次访问";
	    String[] info = {"", "", ""};
	    Cookie[] cookies = request.getCookies();
	    if (cookies != null){
	    	for (int i = 0; i < cookies.length; ++i){
	    		if (cookies[i].getName().endsWith("gjlCookInfo")){
	    			info = cookies[i].getValue().split("#");
	    			for (int j = 0; j < info.length; ++j){
	    				info[j] = URLDecoder.decode(info[j], "UTF-8");
	    			}
	    			welcome = "欢迎回来!";
	    		}
	    	}
	    }
	    String sessionMessage = "session练习";
        session.setAttribute("message", sessionMessage);
	    %>
        <%=info[0] + ", " + welcome %>
        <form action="show.jsp" method="post">
            <p><span>姓名:</span><input type="text" name="name" value="<%=info[0] %>"/></p>
            <p><span>生日:</span><input type="text" name="birthday" value="<%=info[1] %>"/></p>
            <p><span>邮箱:</span><input type="text" name="email" value="<%=info[2] %>"/></p>
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLEncoder"%>
<%@ page import="java.net.URLDecoder"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        String name = new String(request.getParameter("name").getBytes("ISO8859_1"), "UTF-8");
        String birthday = new String(request.getParameter("birthday").getBytes("ISO8859_1"), "UTF-8");
        String email = new String(request.getParameter("email").getBytes("ISO8859_1"), "UTF-8");
        Cookie myCookie = new Cookie("gjlCookInfo", URLEncoder.encode(name, "UTF-8") + "#" + URLEncoder.encode(birthday, "UTF-8") + "#" + URLEncoder.encode(email, "UTF-8"));
        response.addCookie(myCookie);
        response.setHeader("refresh", "2;URL=client.jsp");
        String message = (String)session.getAttribute("message");
        out.println(message);
        %>
        <ul>
            <li><span>姓名:</span><%=name %>
            <li><span>姓名:</span><%=birthday %>
            <li><span>姓名:</span><%=email %>
            <li><a href="index.jsp">返回</a>
        </ul>
    </body>
</html>

client.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        response.setHeader("refresh", "5;URL=index.jsp");
        %>
        <ul>
            <li>客户端使用协议:<%=request.getProtocol() %></li>
            <li>客户端发送请求的方法:<%=request.getMethod() %></li>
            <li>客户端的请求路径:<%=request.getContextPath() %></li>
            <li>客户端的IP地址:<%=request.getRemoteAddr() %></li>
            <li>客户端主机的名称:<%=request.getRemoteHost() %></li>
            <li>客户端端口号:<%=request.getRemotePort() %></li>
            <li>接收客户信息的页面:<%=request.getServletPath() %></li>
        </ul>
    </body>
</html>

3、访问计数(Application)

关键代码:

  1. 获取、更新application变量值
    application.getAttribute("visitCount") 获取application变量
    application.getInitParameter("visitCount") 从配置文件(web.xml)获取application变量初始化值
    application.setAttribute("visitCount", temp) 更改application变量值

  2. 初始化application变量(web.xml)
    <context-param>
    <param-name>visitCount</param-name>
    <param-value>1000</param-value>
    </context-param>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        Integer count = (Integer)application.getAttribute("visitCount");
        int countInit = Integer.parseInt(application.getInitParameter("visitCount"));
        int temp = count == null ? countInit : countInit > count ? countInit : count;
        %>
        <p>访问计数: <%=temp %><%=new Date() %></p>
        <%
        temp++;
        application.setAttribute("visitCount", temp);
        %>
    </body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Qimo</display-name>
  <context-param>
    <param-name>visitCount</param-name>
    <param-value>1000</param-value>
  </context-param>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

4、frameset框架

关键代码:

  1. frameset框架,将页面分为上下部分
    <frameset rows="30%,70%">
    <frame src=top.jsp>
    <frame src=page_1_body.jsp>
    </frameset>

top.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLDecoder"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        String name = request.getParameter("name");
        if (name != null){
        	name = new String(name.getBytes("ISO8859-1"), "UTF-8");
            session.setAttribute("name", name);
        }
        name = (String)session.getAttribute("name");
        String info = "Hello, " + name + ", today is 2020/10/21";
        
        if (name == null){
        %>
        <form action="in.jsp" method="post">
            Name:<input type="text" name="name"><br>
            Password:<input type="password" name="password"><br>
            <input type="submit" value="提交"/>
        </form><% 
        } else { %>
        <marquee>
            <%=info %>
        </marquee>
        <form action="out.jsp" method="post">
            <input type="submit" value="退出"/>
        </form><%
        } %>
    </body>
</html>

in.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        String name = request.getParameter("name");
        name = new String(name.getBytes("ISO8859-1"), "UTF-8");
        String date = "2020/10/21";
        session.setAttribute("name", name);
        %>
        <marquee>
            Hello, <%=name %>. 今天是<%=date %>
        </marquee>
        <a href=top.jsp>返回</a>
    </body>
</html>

out.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        session.removeAttribute("name");
        session.invalidate();
        response.setHeader("refresh", "1;top.jsp");
        %>
        <a href=top.jsp>1s后返回</a>
    </body>
</html>

page_1.jsp

<frameset rows="30%,70%">
    <frame src=top.jsp>
    <frame src=page_1_body.jsp>
</frameset>

page_1_body.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <p>page_1</p>
        <a href="javascript:window.top.location.href='page_2.jsp'">Go to page_2</a>
    </body>
</html>

page_2.jsp

<frameset rows="30%,70%">
    <frame src=top.jsp>
    <frame src=page_2_body.jsp>
</frameset>

page_2_body.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <p>page_2</p>
        <input type="button" value="Go to page_1" onclick="window.top.location='page_1.jsp'">
    </body>
</html>

关键代码:

  1. 页面每秒自动刷新
    <meta http-equiv="Refresh" content="1">

  2. jsp调用类对象
    <jsp:useBean id="date" class="clock.Clock"></jsp:useBean>

  3. jsp调用类变量
    <jsp:getProperty property="dateTime" name="date"/> name字段值为类实例的id
    <jsp:getProperty property="week" name="date"/> name字段值为类实例的id

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Refresh" content="1">
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
        <style type="text/css">
           #clock{
               width: 420px;
               height: 80px;
               background: #E0E0E0;
               font-size: 25px;
               font-weight: bold;
               border: solid 5px orange;
               padding: 20px;
           }
           #week{
               padding-top: 15px;
               color: #0080FF;
           }
       </style>
    </head>
    <body>
        <jsp:useBean id="date" class="clock.Clock"></jsp:useBean>
        <div align="center">
            <div id="clock">
                <jsp:getProperty property="dateTime" name="date"/>
            </div>
            <div id="week">
                <jsp:getProperty property="week" name="date"/>
            </div>
        </div>
    </body>
</html>

Clock.java

package clock;

import java.text.SimpleDateFormat;
import java.util.*;

public class Clock {
	private String week;
	private String dateTime;
	
	public String getDateTime() {
		Date currDate = Calendar.getInstance().getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH点mm分ss秒");
		return sdf.format(currDate);
	}
	
	public String getWeek() {
		String[] weeks = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
		int index = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
		week = weeks[index-1];
		return week;
	}
}

关键代码:

  1. import类
    <%@ page import="email.Email"%>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        out.println("20电子信息<br>");
        %>
        <form action="check.jsp" method="post">
            <span>用户邮箱:</span><input type=text name=Email>
            <input type=submit>
        </form>
    </body>
</html>

check.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="email.Email"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        String emContent = request.getParameter("Email");
        Email em = new Email(emContent);
        if (em.isEmail())
            out.print("合法邮箱");
        else
            out.print("非法邮箱");
        %>
        <a href="index.jsp">返回</a>
    </body>
</html>

Email.java

package email;

public class Email {
	public String email;
	public Email(String emStr) {
		email = emStr;
	}
	public boolean isEmail() {
		return email.contains("@");
	}
}

7、新闻发布

关键代码:

  1. 变量get、set访问器
    <jsp:useBean id="aNews" class="news.News"></jsp:useBean> 调用类对象
    <jsp:setProperty property="*" name="aNews"/> 所有变量set初始化
    <h1>标题:<%=EncStr.getStr(aNews.getTitle()) %></h1> 变量get值
    <h4>内容:<%=EncStr.getStr(aNews.getContent()) %></h4> 变量get值

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <form action="show.jsp" method="post">
            <table>
                <tr><td><b>新闻发布</b></td></tr>
                <tr>
                    <td>标题</td>
                    <td><input type="text" name="title"></td>
                </tr>
                <tr>
                    <td>内容</td>
                    <td><input type="text" name="content"></td>
                </tr>
                <tr><td><input type="submit" value="提交"></td></tr>
            </table>
        </form>
    </body>
</html>

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="news.EncStr"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <jsp:useBean id="aNews" class="news.News"></jsp:useBean>
        <jsp:setProperty property="*" name="aNews"/>
        <h1>标题:<%=EncStr.getStr(aNews.getTitle()) %></h1>
        <h4>内容:<%=EncStr.getStr(aNews.getContent()) %></h4>
    </body>
</html>

EncStr.java

package news;

import java.io.UnsupportedEncodingException;

public class EncStr {
	public static String getStr(String str) {
		String nStr = null;
		try {
			nStr = new String(str.getBytes("ISO8859-1"), "UTF-8");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return nStr;
	}
}

News.java

package news;

public class News {
	private String title;
	private String content;
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
}

8、用户登录

关键代码:

  1. 变量get、set访问器
    <jsp:useBean id="aUser" class="user.User"></jsp:useBean>
    <jsp:setProperty property="*" name="aUser"></jsp:setProperty>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <form action="show.jsp" method="post" name="aUser">
            <span>用户名:</span><input type=text name="userName"><br>
            <span>密码:</span><input type=text name="password"><br>
            <span>问题:</span><input type=text name="question"><br>
            <span>回答:</span><input type=text name="answer"><br>
            <input type=submit value="提交">
        </form>
    </body>
</html>

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <jsp:useBean id="aUser" class="user.User"></jsp:useBean>
        <jsp:setProperty property="*" name="aUser"></jsp:setProperty>
        <span>请您核对信息如下:</span><br>
        <span>用户名:</span><jsp:getProperty property="userName" name="aUser"/><br>
        <span>密码:</span><jsp:getProperty property="password" name="aUser"/><br>
        <span>问题:</span><jsp:getProperty property="question" name="aUser"/><br>
        <span>答案:</span><jsp:getProperty property="answer" name="aUser"/><br>
    </body>
</html>

User.java

package user;
import java.io.UnsupportedEncodingException;
public class User {
	private String userName;
	private String password;
	private String question;
	private String answer;
	public String getUserName() throws UnsupportedEncodingException {
		return new String(userName.getBytes("ISO8859_1"), "UTF-8");
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getQuestion() throws UnsupportedEncodingException {
		return new String(question.getBytes("ISO8859_1"), "UTF-8");
	}
	public void setQuestion(String question) {
		this.question = question;
	}
	public String getAnswer() throws UnsupportedEncodingException {
		return new String(answer.getBytes("ISO8859_1"), "UTF-8");
	}
	public void setAnswer(String answer) {
		this.answer = answer;
	}
}

9、作文(EL)

关键代码:

  1. 配置stringDeal.tld

  2. 调用自定义EL标签
    <%@ taglib uri="/stringDeal" prefix="sd" %>

  3. EL调用类方法
    ${sd:shiftEnter(param.zuowen)}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <form action="show.jsp" method="post">
            <p>写作文:</p>
            <textarea rows="5" cols="100" name="zuowen"></textarea>
            <input type="submit">
        </form>
    </body>
</html>

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="/stringDeal" prefix="sd" %>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <p>提交的信息是:</p>
        ${sd:shiftEnter(param.zuowen)}
    </body>
</html>

stringDeal.tld

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0">
    <tlib-version>1.0</tlib-version>
    <uri>/stringDeal</uri>
    <function>
        <name>shiftEnter</name>
        <function-class>se.StringDeal</function-class>
        <function-signature>java.lang.String shiftEnter(java.lang.String)</function-signature>
    </function>
</taglib>

StringDeal.java

package se;
import java.io.UnsupportedEncodingException;
public class StringDeal {
	public static String filter(String str) throws UnsupportedEncodingException {
		String newStr = new String(str.getBytes("ISO8859-1"), "UTF-8");
		return newStr;
	}
	public static String shiftEnter(String oldStr) throws UnsupportedEncodingException {
		oldStr = filter(oldStr);
		String newStr = oldStr.replaceAll("\r\n", "<br>");
		newStr = newStr.replaceAll(" ", " ");
		return newStr;
	}
}

10、jstl标签库

index.jsp

<%@ page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <c:url var="path" value="register.jsp" scope="page">
            <c:param name="user" value="gjl"/>
            <c:param name="email" value="[email protected]"/>
        </c:url>
        <a href="${pageScope.path}">register</a><br>
        
        <span>escapeXml true</span>
        <c:out value="水平线<hr>" escapeXml="true"></c:out><br>
        <span>escapeXml false</span>
        <c:out value="水平线<hr>" escapeXml="false"></c:out>
        
        <c:set var="userName" value="dianziinfo" scope="request"></c:set>
        
        <br>
        <c:out value="userName=${userName2}"></c:out><br>
        
        <jsp:useBean id="aUser" class="dz.UserInfo"></jsp:useBean>
        <c:set target="${aUser}" property="userName">xiaoli</c:set>
        
        <br>
        <%=aUser.getUserName() %>
        <c:out value="userName=${aUser.userName}" />
        <c:remove var="userName" scope="request"></c:remove><br>
        
        <span>删除后:userName=</span>
        <c:out value="${userName}" default="空"></c:out><br>
        
        <c:catch var="error">
            <c:set target="${aUser}" property="userPass">134</c:set>
        </c:catch>
        
        <c:out value="出错信息为:${error}"></c:out><br>
        
        <c:if test="${empty param.nickname}" var="result">
            <form action="" method="post">
                <span>please input your nickname:</span>
                <input type="text" name="nickname">
                <input type="submit">
            </form>
        </c:if>
        
        <c:if test="${!result}">
            [${param.nickname}], welcome!
        </c:if>
        
        <c:choose>
            <c:when test="${empty param.truename}">
                <form action="" method="post">
                    <span>please input your truename:</span>
                    <input type="text" name="truename">
                    <input type="submit">
                </form>
            </c:when>
            <c:otherwise>
                [${param.truename}], welcome!
            </c:otherwise>
        </c:choose>
        
        <%Random rnd = new Random(); %>
        <c:set var="hours"><%=rnd.nextInt(24)%></c:set>
        <c:choose>
            <c:when test="${hours>=1 && hours<6}"><span>早上好</span></c:when>
            <c:when test="${hours>=6 && hours<11}"><span>上午好</span></c:when>
            <c:when test="${hours>=11 && hours<17}"><span>下午好</span></c:when>
            <c:when test="${hours>=17 && hours<24}"><span>晚上好</span></c:when>
        </c:choose>
        <br>
        
        <%
        List<String> myList = new ArrayList<String>();
        myList.add("apple");
        myList.add("pear");
        myList.add("orange");
        request.setAttribute("myList", myList);
        %>
        
        <c:forEach items="${requestScope.myList}" var="keyword" varStatus="id">
            ${id.index} ${keyword}<br>
        </c:forEach>
        
        <p>遍历myList集合中第1个元素之后的元素(不包括第1个):</p>
        <c:forEach items="${requestScope.myList}" var="keyword" varStatus="id" begin="1">
            ${id.index} ${keyword}<br>
        </c:forEach>
        
        <c:set var="bigStr" value="12,df,34、lj."></c:set><br>
        <c:out value="bigStr=${bigStr}"></c:out><br>
        <c:forTokens items="${bigStr}" delims=",、." var="item">
            ${item}<br>
        </c:forTokens>
    </body>
</html>

UserInfo.java

package dz;
public class UserInfo {
	private String userName;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
}

11、计数过滤器

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <span>你是第<%=application.getAttribute("count").toString()%>位访问者。</span>
    </body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Qimo</display-name>
  
  <context-param>
    <param-name>visitCount</param-name>
    <param-value>1000</param-value>
  </context-param>
  
  <filter>
    <filter-name>guojiale</filter-name>
    <filter-class>filter.CountFilter</filter-class>
    <init-param>
        <param-name>initCount</param-name>
        <param-value>10000</param-value>
    </init-param>
  </filter>
  
  <filter-mapping>
    <filter-name>guojiale</filter-name>
    <url-pattern>/11_Count_Filter/index.jsp</url-pattern>
  </filter-mapping>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

CountFilter.java

package filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

//@WebFilter("/CountFilter")
public class CountFilter implements Filter {
	public int count = 5000;
    /**
     * Default constructor. 
     */
    public CountFilter() {
        // TODO Auto-generated constructor stub
    }
	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}
	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		// place your code here
		count++;
		HttpServletRequest req = (HttpServletRequest) request;
		ServletContext sc = req.getSession().getServletContext();
		sc.setAttribute("count", count);
		// pass the request along the filter chain
		chain.doFilter(request, response);
	}
	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
		String countStr = fConfig.getInitParameter("initCount");
		count = Integer.parseInt(countStr);
	}
}

12、servlet

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <a href="Mygjl">Servlet</a>
    </body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Qimo</display-name>
  
  <context-param>
    <param-name>visitCount</param-name>
    <param-value>1000</param-value>
  </context-param>
  
  <filter>
    <filter-name>guojiale</filter-name>
    <filter-class>filter.CountFilter</filter-class>
    <init-param>
      <param-name>initCount</param-name>
      <param-value>10000</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>guojiale</filter-name>
    <url-pattern>/11_Count_Filter/index.jsp</url-pattern>
  </filter-mapping>
  
  <servlet>
    <servlet-name>MyFirstServlet</servlet-name>
    <servlet-class>servlet.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyFirstServlet</servlet-name>
    <url-pattern>/12_servlet/Mygjl</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

MyServlet.java

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServlet
 */
//@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
		response.setContentType("text/html");
		response.setCharacterEncoding("GBK");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<body>");
		out.println("my servlet class is :" + this.getClass());
		out.println("</body>");
		out.println("</html>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

13、MySQL

注意:
在lib下导入mysql.jar包

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <form action="SqlServlet" method="post">
            <input type="text" name="add" placeholder="please input sql here"/>
            <input type="submit" value="增"/><br>
            <input type="text" name="delete" placeholder="please input sql here"/>
            <input type="submit" value="删"/><br>
            <input type="text" name="update" placeholder="please input sql here"/>
            <input type="submit" value="更"/><br>
            <input type="text" name="select" placeholder="please input sql here"/>
            <input type="submit" value="查看">
        </form>
    </body>
</html>

SqlServlet.java

package sql;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sql.SQL;;

/**
 * Servlet implementation class SqlServlet
 */
@WebServlet("/13_SQL/SqlServlet")
public class SqlServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SqlServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		SQL myDao = new SQL();
		String add = request.getParameter("add");
		String delete = request.getParameter("delete");
		String update = request.getParameter("update");
		String select = request.getParameter("select");
		if (add != "") {
			myDao.update(add);
			response.getWriter().println(myDao.updateString);
		}
		if (delete != "") {
			myDao.update(delete);
			response.getWriter().println(myDao.updateString);
		}
		if (update != "") {
			myDao.update(update);
			response.getWriter().println(myDao.updateString);
		}
		if (select != "") {
			try {
				myDao.search(select);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			response.getWriter().println(myDao.selectString);
		}
	}
}

SQL.java

package sql;

import java.sql.*;

public class SQL {
	public String selectString = "";
	public String updateString = "";
	
	private Connection conn = null;
	private Statement st = null;
	
	public void search(String sql) throws SQLException {
		ResultSet rs = null;
		try {
			rs = st.executeQuery(sql);
			while(rs.next()){
				for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
					selectString += "    "+rs.getMetaData().getColumnLabel(i)+" - "+rs.getString(i);
				}
				selectString += "<br>";
			}
			rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public void update(String sql) {
		try {
			int count = st.executeUpdate(sql);
			updateString += Integer.toString(count);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public SQL(){
		try{
            Class.forName("com.mysql.jdbc.Driver");
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
		try {
			conn = DriverManager.getConnection("jdbc:mysql://localhost/se", "root", "");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			st = conn.createStatement();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

MyFilter.java

package sql;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class MyFilter
 */
@WebFilter("/*")
public class MyFilter implements Filter {

    /**
     * Default constructor. 
     */
    public MyFilter() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		// place your code here
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		// pass the request along the filter chain
		chain.doFilter(request, response);
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}
}

百度网盘链接: https://pan.baidu.com/s/1B10ExdudX2nV3I8RWNa0Yg
提取码:ncht


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK