zoukankan      html  css  js  c++  java
  • JSP编程-步步为营

    【第一个JSP举例】

    header.jsp

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <% out.println("welcome调用这个JSP页面"); %>
    

      footer.jsp

    <br>
    
    </body>
    </html>
    

      jsp代码

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    
    <%@ include file="/header.jsp" %><%--包含页头 --%>
    
    <%!
    int i=0;
    private int count(){
    	i++;
    	return i;
    }
    %>
    <p>调用count输出<%=count() %></p>
    <p>调用count输出<%=count() %></p>
    <br>
    <%@ include file="/footer.jsp" %><%--包含页底 --%>
    

      

    【概念总结】

    language定义使用的脚本语言
    contentType定义jsp字符编码和页面响应的MIME类型
    pageEncoding jsp页面的字符编码


    scriptlet标签

    <%! %>可定义全局变量、全局方法、全局类
    <% %>可定义局部变量
    <%= %>输出


    JSP注释
    <!-- -->HTML客户端可见
    <%-- --%>客户端不可见
    //单行注释
    /* 多行注释 */


    静态包含
    <%@ include file="header.html" %>
    <%@ include file="footer.jsp" %>
    动态包含
    <jsp:include page="header.html" />
    <jsp:include page="footer.jsp" />

    【jsp九大内置对象】
    pageContext request response session application config
    out page exception

    【四大作用域】
    Page范围 只在一个页面中保存数据 抽象类
    Request范围 只在一个请求中保存数据 接口
    Session范围 在一个会话范围中保存数据,仅供单个用户使用
    接口
    Application范围 在整个服务器上保存数据,所有用户共享

    【Page范围】

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>
    
    <%
    pageContext.setAttribute("name","名字");
    pageContext.setAttribute("age",24);
    %>
    
    <%
    String str1=(String)pageContext.getAttribute("name");
    int n=(Integer)pageContext.getAttribute("age");
    %>
    <p>姓名:<%=str1 %></p>
    <p>年龄:<%=n %></p>
    </body>
    </html>
    

      【Request范围】

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>
    
    <%
    request.setAttribute("name","马云");
    request.setAttribute("age",23);
    request.setAttribute("sex","男");
    %>
    <jsp:forward page="f_target.jsp"></jsp:forward>
    
    </body>
    </html>
    

      

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>
    
    <%
    String str=(String)request.getAttribute("name");
    int age=(Integer)request.getAttribute("age");
    String sex=(String)request.getAttribute("sex");
    %>
    
    <p>姓名:<%=str %></p>
    <p>年龄:<%=age %></p>
    <p>性别: <%=sex %></p>
    
    </body>
    </html>
    

      【Session范围】

    session保存在服务器中,只要页面不关闭,就可以随时取得

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>Session</title>
    </head>
    <body>
    <h3>设置Session</h3>
    <% 
    session.setAttribute("bookName","JAVA编程"); 
    session.setAttribute("price",25.5);
    %>
    </body>
    </html>
    

      

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>get Session</title>
    </head>
    <body>
    
    <%
    String bookName=(String)session.getAttribute("bookName");
    double price=(Double)session.getAttribute("price");
    %>
    
    <p>图书名称:<%=bookName %></p>
    <p>图书价格:<%=price %></p>
    
    </body>
    </html>
    

      【Application范围】范围更大,浏览器关闭或者换用其他浏览器,也可以访问数据

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>Application</title>
    </head>
    <body>
    
    <%
    application.setAttribute("bookName","数据库");
    application.setAttribute("price",45.85);
    %>
    
    </body>
    </html>
    

      

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>Application</title>
    </head>
    <body>
    
    <%
    String bookName=(String)application.getAttribute("bookName");
    double price=(Double)application.getAttribute("price");
    %>
    <p>图书名称:<%=bookName %></p>
    <p>图书价格:<%=price %></p>
    </body>
    </html>
    

      知识点:

    【获取Request的头信息】jsp引入 枚举

    输出 name value

    <%@ page import="java.util.*" %>
    
    <%
    Enumeration e=request.getHeaderNames();
    while(e.hasMoreElements()){
    String name=(String)e.nextElement();
    String value=request.getHeader(name);
    %>
    <p><%=name %>    <%=value %></p>
    <%
    }
    %>
    

      

    【Response】示例:每隔一秒刷新时间

    <%
    response.setIntHeader("Refresh",1);
    Date date=new Date();
    %>
    <h3>时间</h3>
    <%=date.toLocaleString() %>
    

      网页重定向

    <h3>网页重定向-客户端跳转</h3>
    <%--response.sendRedirect("page4.jsp");--%>
    

      

    <h3>用户登录post</h3>
    <form action="login.jsp" method="post">
    用户:<input type="text" name="userName" /><br><br>
    密码:<input type="password" name="password" /><br><br>
    记住我<input type="checkbox" name="remember" value="remember" /><br><br>
    <input type="submit" value="提交" />
    <input type="reset" value="重置" />
    </form>
    

      login.jsp的代码

    <%
    String name=request.getParameter("userName");
    String pass=request.getParameter("password");
    String rem=request.getParameter("remember");
    %>
    <%=name %>
    <%=pass %>
    <%=rem %>
    

      

    post get比较
    post放在数据包里-get放在Url后面
    get数据量小、不安全

     【Cookie示例】用户登录记住用户名和密码

    <%@ page language="java" contentType="text/html; 
    
    charset=utf-8"
        pageEncoding="utf-8"%>
    <%@ page import="java.util.*" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 
    
    Transitional//EN" 
    
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script>
    function resetValue(){
    	document.getElementById("userName").value="";
    	document.getElementById("password").value="";
    }
    </script>
    <meta http-equiv="Content-Type" content="text/html; 
    
    charset=utf-8">
    <title>Test response</title>
    </head>
    <body>
    <%
    String userName=null;
    String password=null;
    Cookie[] cos=request.getCookies();
    Cookie c=null;
    for(int i=0;i<cos.length;i++){
        c=cos[i];
        if(c.getName().equals("nameAndPass")){
            //out.println("保存的用户名和密码"+c.getValue
    
    ());
            userName=c.getValue().split("-")[0];
            password=c.getValue().split("-")[1];
        }
    }
    if(userName==null){userName="";}
    if(password==null){password="";}
    %>
    <h3>用户登录post</h3>
    <form action="login.jsp" method="post">
    用户:<input type="text" name="userName" id="userName" 
    
    value="<%=userName %>"/><br><br>
    密码:<input type="password" name="password" 
    
    id="password" value="<%=password %>"/><br><br>
    记住我<input type="checkbox" name="remember" 
    
    value="remember" /><br><br>
    <input type="submit" value="提交" />
    <input type="button" value="重置" onclick="resetValue()" 
    
    />
    </form>
    
    </body>
    </html>
    

      

    <%@ page language="java" contentType="text/html; 
    
    charset=utf-8" 
    	pageEncoding="utf-8"%>
        <%@ page import="javax.servlet.http.*" %>
    <!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>login.jsp</title>
    </head>
    <body>
    
    <%
    String name=request.getParameter("userName");
    String pass=request.getParameter("password");
    String rem=request.getParameter("remember");
    if("remember".equals(rem)){
    	Cookie c=new Cookie("nameAndPass",name
    
    +"-"+pass);
    	c.setMaxAge(24*60*60*7);//记录一个星期
    	response.addCookie(c);//保存Cookie
    }
    response.sendRedirect("page5_response.jsp");
    %>
    
    
    </body>
    </html>
    

      【out对象】

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>Test out</title>
    </head>
    <body>
    <%
    int total=out.getBufferSize();//总缓存大小
    int noUse=out.getRemaining();//未使用缓存大小
    int u=total-noUse;
    %>
    <p>总缓存大小:<%=total %></p>
    <p>未使用缓存大小:<%=noUse %></p>
    <p>已使用缓存大小:<%=u %></p>
    </body>
    </html>
    

      【config对象】

    config.getInitParameter();//获得xml里的初始化参数param

      【exception异常处理】

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
        <%@ page errorPage="ex2.jsp" %>
    <!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>Exception</title>
    </head>
    <body>
    <%
    int a=1;
    int b=0;
    out.println(a/b);
    %>
    </body>
    </html>
    

      

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
        <%@ page isErrorPage="true" %>
    <!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>isErrorPage</title>
    </head>
    <body>
    
    <%
    if(exception!=null){
    	String str=exception.getMessage();
    	out.println("错误提示信息:<br>");
    	out.println(str);
    }
    %>
    
    </body>
    </html>
    

      此处需要在浏览器中运行,不在tomcat里运行

    【pageContext对象】页面上下文

    <%
    pageContext.setAttribute("name0","pageInfo");
    request.setAttribute("name1","requestInfo");
    session.setAttribute("name2","sessionInfo");
    application.setAttribute("name3","applicationInfo");
    
    out.println("->"+pageContext.getAttribute("name0")+"<br>");
    out.println("->"+pageContext.getRequest().getAttribute("name1")+"<br>");
    out.println("->"+pageContext.getSession().getAttribute("name2")+"<br>");
    out.println("->"+session.getServletContext().getAttribute("name3")+"<br>");
    %>
    

      

  • 相关阅读:
    android 多线程
    Uva 10881 Piotr’s Ants 蚂蚁
    LA 3708 Graveyard 墓地雕塑 NEERC 2006
    UVa 11300 Spreading the Wealth 分金币
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    HDU 4162 Shape Number
    HDU 1869 六度分离
    HDU 1041 Computer Transformation
    利用可变参数函数清空多个数组
  • 原文地址:https://www.cnblogs.com/void-m/p/6146366.html
Copyright © 2011-2022 走看看