• Jsp学习笔记


    JSP学习笔记

      慕课网(JAVA遇见HTML——JSP篇)学习笔记

      原视频(https://www.imooc.com/learn/166)侵删

    1.JSP页面元素构成

    指令  表达式  小脚本  声明  注释  静态内容


    指令

    说明:

    创建新jsp文件的时候后面的指令是pageEncoding(),指的是文件本身的编码,把这个改为contentType(),指定页面的类型和页面的字符编码。


    注释:客户端通俗讲就是浏览器。


    脚本:


    声明:

      java代码既可以是变量,也可以是方法。


    表达式:

      可以直接在里面添加变量以及方法。


    2.JSP页面的生命周期

    说明:

    第一次请求一个jsp页面时,首先被执行的方法是构造方法,而不是jspInit()方法。

    jspService()是始终驻于内存的。如果有多个用户,JSP可以创建一个多线程,提高并发量和响应时间。

    每一次编码之后,内容都会写到work的class里面重新编码,这样下次用户访问的时候,直接将编码的文件提供给用户。


    二.JSP内置对象

    内置对象简介:用web容器创建的一组对象,不需要使用new字符串就可以使用的内置对象。

    <%
        int[] value = {60,70,80};
            for(int i:value){
                  out.println(i); //比如这个可以直接使用out对象     
            }
    %>

    常用的内置对象:out  request/response  session  application

    不常用的内置对象:Page  pageContext  exception  config


     


    缓冲区:Buffer,临时存储数据的地方,可以直接在这里获取信息。



    表单:

    <%@ page import="java.sql.*" language="java"
        contentType="text/html; charset=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>登录界面</title>
    </head>
    <body>
        <center>
            <form action="register.jsp" name="registerForm" method="post">//表示直接跳转到这个页面,或者跳转到这个方法里面。
                <table>
                    <tr>
                        <td>注册码:</td>
                        <td><input type="text" name="registrationCode"></td>
                    </tr>
                    <tr>
                        <td>邀请码:</td>
                        <td><input type="text" name="invitationCode"></td>
                    </tr>
                    <tr>
                        <td colspan="2"><input type="submit" value="注册"></td>
                    </tr>
                </table>
            </form>
        </center>
    </body>
    </html>

      

    register.jsp文件

    <%@ page import="java.sql.*" language="java"
        contentType="text/html; charset=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>登录界面</title>
    </head>
    <body>
        <center>
            <form action="register.jsp" name="registerForm" method="post">//表示直接跳转到这个页面,或者跳转到这个方法里面。
                <table>
                    <tr>
                        <td>注册码:</td>
                        <td><input type="text" name="registrationCode"></td>
                    </tr>
                    <tr>
                        <td>爱好:</td>
                        <td>
                            <input type="checkbox" name="favorite" value="read">读书//这里使用checkBox可以插入多行对象用到getParameters方法。
                            <input type="checkbox" name="favorite" value="music">音乐
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2"><input type="submit" value="注册"></td>
                    </tr>
                </table>
            </form>
        </center>
    </body>
    </html>  
    根据URL传递参数:在后面加上<a href="request.jsp?username=lisi">测试url传递参数</a>
    会出现空指针异常,因为爱好没有传递数据过去,所以无法获取,因此增加一层判断是否为空,再传递参数。
    注意:这个参数传递过来无法为中文,修改setCharacterEncoding也没有效果。
    修改办法:
    修改Tomcat服务器里面的Service.xml文件。在根路径下面的config路径下面,插入配置即可,修改后需要重启。
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" 
                   <!-- 增加下面一条编码即可 -->
                   URIEncoding="utf-8"
    />

    request.jsp
    <%@ page import="java.sql.*" language="java"
        contentType="text/html; charset=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>登录界面</title>
    </head>
    <body>
        <h1>request内置对象</h1>
         <%
               request.setCharacterEncoding("utf-8");//设置编码格式,以防乱码,但是无法解决url传递的乱码问题
         %>
        用户名:<%=request.getParemeter("register") %></br>
        爱好:<%
                  String[] favorites = request.getParameterValues("favorite");
                  for(int i =0;i<favorites.length;i++){
                       out.println(favorites[i]+"&nbsp;&nbsp;");  
                  }
             %>
    </body>
    </html>  

     2017-12-14 学习至此后面是response

  • 相关阅读:
    不同类型的磁盘存储在Ubuntu下的性能测试
    Ubuntu16.04编译安装Redis Desktop Manager
    gnu screen的用法
    MySQL Workbench常用快捷键
    Libevent例子(二)
    Libevent例子(一)
    Ubuntu下的init.d管理update-rc.d
    Centos7 修改终端文字显示颜色
    通过socks tunnel设置http代理
    linux:C++的socket编程
  • 原文地址:https://www.cnblogs.com/xuhai/p/8035734.html
Copyright © 2020-2023  润新知