JSP课程小总结

目录

  • 1、表单提交+中文字符转码
  • 2、Cookie+Session
  • 3、访问计数(Application)
  • 4、frameset框架
  • 5、时钟
  • 6、邮箱
  • 7、新闻发布
  • 8、用户登录
  • 9、作文(EL)
  • 10、jstl标签库
  • 11、计数过滤器
  • 12、servlet
  • 13、MySQL
  • 源码链接


模板:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title heretitle>
    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>爱好1span>
                <input type="checkbox" name="like" value="爱好2"><span>爱好2span>
                <input type="checkbox" name="like" value="爱好3"><span>爱好3span>
            p>
            <input type="submit" value="提交"/>
        form>
    body>
html>

show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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)

    visitCount
    1000

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title heretitle>
    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


<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>Qimodisplay-name>
  <context-param>
    <param-name>visitCountparam-name>
    <param-value>1000param-value>
  context-param>
  <welcome-file-list>
    <welcome-file>index.htmlwelcome-file>
    <welcome-file>index.htmwelcome-file>
    <welcome-file>index.jspwelcome-file>
    <welcome-file>default.htmlwelcome-file>
    <welcome-file>default.htmwelcome-file>
    <welcome-file>default.jspwelcome-file>
  welcome-file-list>
web-app>

4、frameset框架

关键代码:

  1. frameset框架,将页面分为上下部分



top.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLDecoder"%>
<%@ page import="java.util.*"%>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    head>
    <body>
        <p>page_1p>
        <a href="javascript:window.top.location.href='page_2.jsp'">Go to page_2a>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    head>
    <body>
        <p>page_2p>
        <input type="button" value="Go to page_1" onclick="window.top.location='page_1.jsp'">
    body>
html>

5、时钟

关键代码:

  1. 页面每秒自动刷新

  2. jsp调用类对象

  3. jsp调用类变量
    name字段值为类实例的id
    name字段值为类实例的id

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>

<html>
    <head>
        <meta http-equiv="Refresh" content="1">
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
        <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;
	}
}

6、邮箱

关键代码:

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

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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访问器
    调用类对象
    所有变量set初始化

    标题:<%=EncStr.getStr(aNews.getTitle()) %>

    变量get值

    内容:<%=EncStr.getStr(aNews.getContent()) %>

    变量get值

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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访问器

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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" %>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    head>
    <body>
        <p>提交的信息是:p>
        ${sd:shiftEnter(param.zuowen)}
    body>
html>

stringDeal.tld


<taglib version="2.0">
    <tlib-version>1.0tlib-version>
    <uri>/stringDealuri>
    <function>
        <name>shiftEntername>
        <function-class>se.StringDealfunction-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", "
"
); 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"%>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title heretitle>
    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}">registera><br>
        
        <span>escapeXml truespan>
        <c:out value="水平线
"
escapeXml="true">
c:out><br> <span>escapeXml falsespan> <c:out value="水平线
"
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">xiaolic: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">134c: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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    head>
    <body>
        <span>你是第<%=application.getAttribute("count").toString()%>位访问者。span>
    body>
html>

web.xml


<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>Qimodisplay-name>
  
  <context-param>
    <param-name>visitCountparam-name>
    <param-value>1000param-value>
  context-param>
  
  <filter>
    <filter-name>guojialefilter-name>
    <filter-class>filter.CountFilterfilter-class>
    <init-param>
        <param-name>initCountparam-name>
        <param-value>10000param-value>
    init-param>
  filter>
  
  <filter-mapping>
    <filter-name>guojialefilter-name>
    <url-pattern>/11_Count_Filter/index.jspurl-pattern>
  filter-mapping>
  
  <welcome-file-list>
    <welcome-file>index.htmlwelcome-file>
    <welcome-file>index.htmwelcome-file>
    <welcome-file>index.jspwelcome-file>
    <welcome-file>default.htmlwelcome-file>
    <welcome-file>default.htmwelcome-file>
    <welcome-file>default.jspwelcome-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"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    head>
    <body>
        <a href="Mygjl">Servleta>
    body>
html>

web.xml


<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>Qimodisplay-name>
  
  <context-param>
    <param-name>visitCountparam-name>
    <param-value>1000param-value>
  context-param>
  
  <filter>
    <filter-name>guojialefilter-name>
    <filter-class>filter.CountFilterfilter-class>
    <init-param>
      <param-name>initCountparam-name>
      <param-value>10000param-value>
    init-param>
  filter>
  <filter-mapping>
    <filter-name>guojialefilter-name>
    <url-pattern>/11_Count_Filter/index.jspurl-pattern>
  filter-mapping>
  
  <servlet>
    <servlet-name>MyFirstServletservlet-name>
    <servlet-class>servlet.MyServletservlet-class>
  servlet>
  <servlet-mapping>
    <servlet-name>MyFirstServletservlet-name>
    <url-pattern>/12_servlet/Mygjlurl-pattern>
  servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.htmlwelcome-file>
    <welcome-file>index.htmwelcome-file>
    <welcome-file>index.jspwelcome-file>
    <welcome-file>default.htmlwelcome-file>
    <welcome-file>default.htmwelcome-file>
    <welcome-file>default.jspwelcome-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("");
		out.println("");
		out.println("my servlet class is :" + this.getClass());
		out.println("");
		out.println("");
	}

	/**
	 * @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.*"%>

<html>
    <head>
        <meta charset="UTF-8" content="text/html; charset=UTF-8">
        <title>Insert title heretitle>
    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 += "
"
; } 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

你可能感兴趣的:(jsp)