• jsp2



    JSP内置对象
    1:内置对象简介
      JSP内置对象是WEB容器创建的一组对象,不是用new 关键就可以使用的
    2:四种作用域范围
    3:out
    4:request/response
    5:seession
    6:applicaton
    7:其他

        
    JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象



    五大常用对象: out、request、response、session、application<br>
    其它四个不常用对象:page、pageContext、exception、config
    1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
    2. <%
    3. String path = request.getContextPath();
    4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    5. %>
    6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    7. <html>
    8. <head>
    9. <base href="<%=basePath%>">
    10. <title>My JSP 'MyJsp.jsp' starting page</title>
    11. <meta http-equiv="pragma" content="no-cache">
    12. <meta http-equiv="cache-control" content="no-cache">
    13. <meta http-equiv="expires" content="0">
    14. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    15. <meta http-equiv="description" content="This is my page">
    16. <!--
    17. <link rel="stylesheet" type="text/css" href="styles.css">
    18. -->
    19. </head>
    20. <body>
    21.  <h1>out内置对象</h1>
          <%
          //clear()清除缓冲区
          out.println("<h2>静夜思</h2>");
          out.println("床前明月光<br>");
          out.println("床前明月光<br>");
          out.flush();//没任何区别输出,缓冲区变大,调用clear()的话,会打印前几句,false
          //clearBuffer() 不会抛出异常
          out.println("床前明月光<br>");
          out.println("床前明月光<br>");
          %>
          缓冲区大小:<%=out.getBufferSize() %>byte<br>
          缓冲区剩余大小:<%=out.getRemaining() %>byte<br>
        是否清空缓冲区:<%=out.isAutoFlush() %><br>
        </body>
    22. </html>

    1. <%@ page language="java" import="java.util.*"
    2. contentType="text/html; charset=UTF-8"%>
    3. <%
    4. String path = request.getContextPath();
    5. String basePath = request.getScheme() + "://"
    6. + request.getServerName() + ":" + request.getServerPort()
    7. + path + "/";
    8. %>
    9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    10. <html>
    11. <head>
    12. <base href="<%=basePath%>">
    13. <title>My JSP 'login.jsp' starting page</title>
    14. <meta http-equiv="pragma" content="no-cache">
    15. <meta http-equiv="cache-control" content="no-cache">
    16. <meta http-equiv="expires" content="0">
    17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    18. <meta http-equiv="description" content="This is my page">
    19. <!--
    20. <link rel="stylesheet" type="text/css" href="styles.css">
    21. -->
    22. </head>
    23. <body>
    24. <h1>用户登录</h1>
    25. <hr>
    26. <from action="dologin.jsp" name="loginForm" method="get"><%--post --%>
    27. <table>
    28. <tr>
    29. <td>用户名:</td>
    30. <td><input type="text" name="username"></td>
    31. </tr>
    32. <tr>
    33. <td>密码:</td>
    34. <td><input type="password" name="password"></td>
    35. </tr>
    36. <tr>
    37. <td colspan="2"><input type="submit" value="登陆"></td>
    38. </tr>
    39. </table>
    40. </from>
    41. </body>
    42. </html>

    1. <body>
    2. <h1>登陆成功</h1>
    3. <hr>
    4. </body>


    1. <%@ page language="java" import="java.util.*"
    2. contentType="text/html; charset=UTF-8"%>
    3. <%
    4. String path = request.getContextPath();
    5. String basePath = request.getScheme() + "://"
    6. + request.getServerName() + ":" + request.getServerPort()
    7. + path + "/";
    8. %>
    9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    10. <html>
    11. <head>
    12. <base href="<%=basePath%>">
    13. <title>My JSP 'req.jsp' starting page</title>
    14. <meta http-equiv="pragma" content="no-cache">
    15. <meta http-equiv="cache-control" content="no-cache">
    16. <meta http-equiv="expires" content="0">
    17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    18. <meta http-equiv="description" content="This is my page">
    19. <!--
    20. <link rel="stylesheet" type="text/css" href="styles.css">
    21. -->
    22. </head>
    23. <body>
    24. <h1>用户注册</h1>
    25. <hr>
    26. <form name="regForm" action="request.jsp" method="post">
    27. <table>
    28. <tr>
    29. <td>用户名:</td>
    30. <td><input type="text" name="username"></td>
    31. </tr>
    32. <tr>
    33. <td>爱好:</td>
    34. <td><input type="checkbox" name="favorite" value="read">读书
    35. <input type="checkbox" name="favorite" value="music">音乐 <input
    36. type="checkbox" name="favorite" value="movie">电影 <input
    37. type="checkbox" name="favorite" value="internet">上网</td>
    38. </tr>
    39. <tr>
    40. <td colspan="2"><input type="submit" value="登陆"></td>
    41. </tr>
    42. </table>
    43. </form>
    44. <br>
    45. <a href="request.jsp?username=lisi"> 测试url传参</a> <!-- 中文“李四”会出问题,通过tomcat-conf-server-Connector标签+URLEncoding="utf-8"-重启tomcat -->
    46. </body>
    47. </html>
    1. <body>
    2. <h1>requst内置对象</h1>
    3. <%
    4. request.setCharacterEncoding("utf-8");//可以提交汉字
    5. request.setAttribute("password", "123456");
    6. %>
    7. 用户名:<%=request.getParameter("username")%><br> 爱好:<%
    8. if (request.getParameterValues("favorite") != null) {
    9. String[] favorites = request.getParameterValues("favorite");
    10. for (int i = 0; i < favorites.length; i++) {
    11. out.println(favorites[i] + "&nbsp;");
    12. }
    13. }
    14. %><br> 密码:<%=request.getAttribute("password")%><br>
    15. 请求体的MIME类型:<%=request.getContentType()%><br> 协议类型及版本号:<%=request.getProtocol()%><br>
    16. 服务器主机名:<%=request.getServerName()%><br> 服务器端口号:<%=request.getServerPort()%><br>
    17. 请求文件的长度(字节):<%=request.getContentLength()%><br> 请求客户端的ip地址:<%=request.getRemoteAddr()%><br>
    18. 请求真实路径 :<%=request.getRealPath("request.jsp")%><br> 请求上下文路径:<%=request.getContextPath()%><br>
    19. </body>
    response对象
    -
    1. <%@page import="java.io.PrintWriter"%>
    2. <%@ page language="java" import="java.util.*"
    3. contentType="text/html; charset=UTF-8"%>
    4. <%
    5. response.setContentType("text/html; charset=UTF-8");//设置的响应的MIMI类型
    6. out.println("<h1>reponse内置对象</h1>");
    7. out.println("<br>tttt");
    8. PrintWriter out = response.getWriter();//获取输出流对象
    9. outer.println("大家好,我是response输出流");//输出 提前与内置out,用.fluse(清缓存)可以将out提前
    10. response.sendRedirect("reg.jsp");//请求重定向(直接跳转)
    1. %>
    -请求重定向
      客户端行为-----response.sendRedirect(),两次请求,地址栏地址改变
    -请求转发
      服务器行为-----request.getRequestDispatcher().forward(req,resp);地址不改变
    1. <body>
    2. <h1>用户注册</h1>
    3. <hr>
    4. <form name="regForm" action="response.jsp" method="post">
    5. <-- action="response.jsp"-->
    6. <table>
    7. <tr>
    8. <td>用户名:</td>
    9. <td><input type="text" name="username"></td>
    10. </tr>
    11. <tr>
    12. <td>爱好:</td>
    13. <td><input type="checkbox" name="favorite" value="read">读书
    14. <input type="checkbox" name="favorite" value="music">音乐 <input
    15. type="checkbox" name="favorite" value="movie">电影 <input
    16. type="checkbox" name="favorite" value="internet">上网</td>
    17. </tr>
    18. <tr>
    19. <td colspan="2"><input type="submit" value="登陆"></td>
    20. </tr>
    21. </table>
    22. </form>
    23. <br>
    24. <a href="request.jsp?username=lisi"> 测试url传参</a>
    25. <!-- 中文“李四”会出问题,通过tomcat-conf-server-Connector标签+URLEncoding="utf-8"-重启tomcat -->
    26. </body>

    1. <%@page import="java.io.*,java.util.*"%>
    2. <%@ page language="java" import="java.util.*"
    3. contentType="text/html; charset=UTF-8"%>
    4. <%
    5. response.setContentType("text/html; charset=UTF-8");//设置的响应的MIMI类型
    6. out.println("<h1>reponse内置对象</h1>");
    7. out.println("<br>tttt");
    8. PrintWriter outer = response.getWriter();//获取输出流对象
    9. outer.println("大家好,我是response输出流");//输出 提前与内置out,用.fluse(清缓存)可以将out提前
    10. //response.sendRedirect("reg.jsp");//请求重定向(直接跳转)
    11. //请求重定向 response.sendRedirect("request.jsp");
    12. //请求转发
    13. request.getRequestDispatcher("request.jsp").forward(request, response);
    14. %>
    session
     客户端和服务器一次对话----用户浏览网站花费的时间
      在服务器内存中保存着不同用户session
                     内置对象
    1. <body>
    2. <h1>session内置对象</h1>
    3. <hr>
    4. <%
    5. SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    6. Date d=new Date(session.getCreationTime());/* 时间化 */
    7. session.setAttribute("username", "admin");
    8. %>
    9. Session创建时间:<%=sdf.format(d) %><br><!-- 直接session.getCreationTime()会出现一长串代码 -->
    10. Session的ID编号:<%=session.getId() %><br>
    11. 从Session获取用户名:<%=session.getAttribute("username") %><br>
    12. </body>
    1. <body>
    2. <h1>session内置对象1</h1>
    3. <hr>
    4. <%
    5. SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    6. Date d=new Date(session.getCreationTime());/* 时间化 */
    7. session.setAttribute("username", "admin");
    8. session.setAttribute("password", "123456");
    9. session.setAttribute("age", "18");
    10. //设置当前session最大生成期限单位是秒
    11. session.setMaxInactiveInterval(10);//10s
    12. %>
    13. Session创建时间:<%=sdf.format(d) %><br><!-- 直接session.getCreationTime()会出现一长串代码 -->
    14. Session的ID编号:<%=session.getId() %><br>
    15. 从Session获取用户名:<%=session.getAttribute("username") %><br>
    16. <a href="session2.jsp" target="_blank">用超链接跳转到Session2</a>
    17. </body>
    1. <body>
    2. <h1>session内置对象2</h1>
    3. <hr>
    4. <%
    5. // SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    6. // Date d=new Date(session.getCreationTime());/* 时间化 */
    7. // session.setAttribute("username", "admin");
    8. %>
    9. Session的ID编号:<%=session.getId()%><br> 从Session获取用户名:<%=session.getAttribute("username")%><br>
    10. session中保存的全部属性:<%
    11. String[] names = session.getValueNames();
    12. for (int i = 0; i < names.length; i++) {
    13. out.println(names[i] + "&nbsp;");
    14. }
    15. %>
    16. </body>
    session生命周期
    创建-活动-销毁
      session对象
    Tomcat默认超时30s
    .设置Session超时两种方式
     1.session.setMaxInactiveInterval(时间)//单位是秒
    2:在web.xml配置
     <session-confi> <session-timeout>10</session-timeout></session-confi>//单位分
    application
    实现用户间数据共享,可存放全局变量
    开始与服务器启动,终止服务器关闭
      public void setAttribute(String,Object)使用指定名称将对象绑定到对话
    public Object getAttribute(String)返回uzai次对话中指定名称绑定在一起的对象,没有返回null
    Enumeration getAttributeNames()返回可用属性名枚举
    String getServerInfo()返回JSP(SERVET)引擎名及版本号
    1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
    2. <%
    3. String path = request.getContextPath();
    4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    5. %>
    6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    7. <html>
    8. <head>
    9. <base href="<%=basePath%>">
    10. <title>My JSP 'application.jsp' starting page</title>
    11. <meta http-equiv="pragma" content="no-cache">
    12. <meta http-equiv="cache-control" content="no-cache">
    13. <meta http-equiv="expires" content="0">
    14. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    15. <meta http-equiv="description" content="This is my page">
    16. <!--
    17. <link rel="stylesheet" type="text/css" href="styles.css">
    18. -->
    19. </head>
    20. <body>
    21. <h1>application内置对象</h1>
    22. <hr>
    23. <%
    24. application.setAttribute("city", "北京");
    25. application.setAttribute("postcode", "10000");
    26. application.setAttribute("email", "lisi@126.com");
    27. %>
    28. 所在城市:<%=application.getAttribute("city") %><br>
    29. application所有属性:<%
    30. Enumeration attibute=application.getAttributeNames();
    31. while(attibute.hasMoreElements()){
    32. out.println(attibute.nextElement()+" ");
    33. }
    34. %><br>
    35. JSp(SERVET)引擎名及版本号:<%=application.getServerInfo() %>
    36. </body>
    37. </html>
    Page
    指向当前JSP页面本身,java.lang.Object
    1. <body>
    2. <h1>page内置对象</h1>
    3. <hr>
    4. 当前page页面对象的字符串描述:<%=page.toString() %>
    5. </body>
    PageContext
    提供对JSP页面内所有对象及名字空间的访问
    可以访问本页所在session---也可以application的某一属性
    1. <body>
    2. <h1>pageContext内置对象</h1>
    3. <hr>
    4. 用户名是:<%=pageContext.getSession().getAttribute("username") %><br>
    5. <%//跳转到注册页面
    6. //pageContext.forward("req.jsp");
    7. //包含include.jsp内容
    8. pageContext.include("include.jsp");
    9. %>
    10. </body>
    1. <%@page import="javax.enterprise.inject.New"%>
    2. <%@page import="java.text.*"%>
    3. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
    4. <%
    5. String path = request.getContextPath();
    6. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    7. Date date=new Date();
    8. SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
    9. String s=sdf.format(date);
    10. out.println(s+"<br>");
    11. %>

    Config
    在一个Servet初始化时,JSP引擎向它传递信息,
    Exception
    是一个异常对象,
    1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" errorPage="exception.jsp"%>
    2. <!-- errorPage="exception.jsp"将异常交给 exception.jsp处理 -->
    3. <%
    4. String path = request.getContextPath();
    5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    6. %>
    7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    8. <html>
    9. <head>
    10. <base href="<%=basePath%>">
    11. <title>My JSP 'exception.jsp' starting page</title>
    12. <meta http-equiv="pragma" content="no-cache">
    13. <meta http-equiv="cache-control" content="no-cache">
    14. <meta http-equiv="expires" content="0">
    15. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    16. <meta http-equiv="description" content="This is my page">
    17. <!--
    18. <link rel="stylesheet" type="text/css" href="styles.css">
    19. -->
    20. </head>
    21. <body>
    22. <h1>测试异常页面</h1>
    23. <%
    24. System.out.println(100/0);//抛出算数异常
    25. %>
    26. </body>
    27. </html>
    1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" isErrorPage="true"%>
    2. <%
    3. String path = request.getContextPath();
    4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    5. %>
    6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    7. <html>
    8. <head>
    9. <base href="<%=basePath%>">
    10. <title>My JSP 'excepton.jsp' starting page</title>
    11. <meta http-equiv="pragma" content="no-cache">
    12. <meta http-equiv="cache-control" content="no-cache">
    13. <meta http-equiv="expires" content="0">
    14. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    15. <meta http-equiv="description" content="This is my page">
    16. <!--
    17. <link rel="stylesheet" type="text/css" href="styles.css">
    18. -->
    19. </head>
    20. <body>
    21. <h1>exception内置对象</h1>
    22. 异常消息:<%=exception.getMessage() %><br>
    23. 异常字符串描述:<%=exception.toString() %>
    24. </body>
    25. </html>
    用户登录例子:用户名admin,登陆成功内部转发login_success.jspbong提示成功,失败则请求重定向login_failure.jsp
    indexs.jsp
    1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
    2. <%
    3. String path = request.getContextPath();
    4. String basePath = request.getScheme() + "://"
    5. + request.getServerName() + ":" + request.getServerPort()
    6. + path + "/";
    7. %>
    8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    9. <html>
    10. <head>
    11. <base href="<%=basePath%>">
    12. <title>My JSP 'index.jsp' starting page</title>
    13. <meta http-equiv="pragma" content="no-cache">
    14. <meta http-equiv="cache-control" content="no-cache">
    15. <meta http-equiv="expires" content="0">
    16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17. <meta http-equiv="description" content="This is my page">
    18. <!--
    19. <link rel="stylesheet" type="text/css" href="styles.css">
    20. -->
    21. </head>
    22. <body>
    23. <div id="container">
    24. <div></div>
    25. <div id="box">
    26. <form action="doologin.jsp" method="post">
    27. <p class="main">
    28. <label>用户名:</label><input name="username" value="" />
    29. <label>密码:</label><input type="possword" name="password" value="" />
    30. </p>
    31. <p cclass="space">
    32. <input type="submit" value="登录" class="login" style="cursor:poin">
    33. </p>
    34. </form>
    35. </div>
    36. </div>
    37. </body>
    38. </html>
    doologin.jsp
    1. <%@ page language="java" import="java.util.*"
    2. contentType="text/html; charset=UTF-8"%>
    3. <%
    4. String path = request.getContextPath();
    5. String basePath = request.getScheme() + "://"
    6. + request.getServerName() + ":" + request.getServerPort()
    7. + path + "/";
    8. String username = "";
    9. String password = "";
    10. request.setCharacterEncoding("utf-8");//防止中文乱码
    11. username = request.getParameter("username");
    12. password = request.getParameter("password");
    13. if ("admin".equals(username) && "admin".equals(password)) {
    14. session.setAttribute("loginUser", username);
    15. request.getRequestDispatcher("login_success.jsp").forward(
    16. request, response);
    17. } else {
    18. response.sendRedirect("login_failure.jsp");
    19. }
    20. %>
    login_success.jsp
    1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
    2. <%
    3. String path = request.getContextPath();
    4. String basePath = request.getScheme() + "://"
    5. + request.getServerName() + ":" + request.getServerPort()
    6. + path + "/";
    7. %>
    8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    9. <html>
    10. <head>
    11. <base href="<%=basePath%>">
    12. <title>My JSP 'index.jsp' starting page</title>
    13. <meta http-equiv="pragma" content="no-cache">
    14. <meta http-equiv="cache-control" content="no-cache">
    15. <meta http-equiv="expires" content="0">
    16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17. <meta http-equiv="description" content="This is my page">
    18. <!--
    19. <link rel="stylesheet" type="text/css" href="styles.css">
    20. -->
    21. </head>
    22. <body>
    23. <div id="container">
    24. <div></div>
    25. <div id="box">
    26. <%
    27. String loginUser="";
    28. if(session.getAttribute("loginUser")!=null){
    29. loginUser=session.getAttribute("loginUser").toString();
    30. }
    31. %>
    32. 欢迎你<font color="red"><%=loginUser %></font>,登陆成功
    33. </div>
    34. </div>
    35. </body>
    36. </html>
    login_failure.jsp
    1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
    2. <%
    3. String path = request.getContextPath();
    4. String basePath = request.getScheme() + "://"
    5. + request.getServerName() + ":" + request.getServerPort()
    6. + path + "/";
    7. %>
    8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    9. <html>
    10. <head>
    11. <base href="<%=basePath%>">
    12. <title>My JSP 'index.jsp' starting page</title>
    13. <meta http-equiv="pragma" content="no-cache">
    14. <meta http-equiv="cache-control" content="no-cache">
    15. <meta http-equiv="expires" content="0">
    16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17. <meta http-equiv="description" content="This is my page">
    18. <!--
    19. <link rel="stylesheet" type="text/css" href="styles.css">
    20. -->
    21. </head>
    22. <body>
    23. <div id="container">
    24. <div></div>
    25. <div id="box">
    26. 登陆失败;
    27. <a href="index.jsp">返回</a>
    28. </div>
    29. </div>
    30. </body>
    31. </html>





  • 相关阅读:
    vue响应式原理的实现
    手写 Promise
    模拟ATM机功能(C语言)
    打印空心菱形
    假设一对耗子每个月都可以生一对小耗子。小耗子生长3个月后,从第4个月开始也就能够生小耗子。问:假设所有的耗子都不死的话,那么20个月后一共有多少只耗子?
    判断一年中的第几天
    依次将10个数输入,要求打印出其中最大的数
    九九乘法表
    判断是否为闰年
    从键盘上接收一个字母,判断是否是大写字母,如果是则转换成小写字母输出 ,否则直接输出。
  • 原文地址:https://www.cnblogs.com/liuruimiku/p/5405315.html
Copyright © 2020-2023  润新知