JSP

1.为什么使用JSP

  1.因为Servlet中使用响应对象回写信息存在弊端:

    1.响应体只适合将数据量较少的结果写到响应体中。

    2.如果处理结果数量较多,会增加开发难度。

  2.所以使用JSP文件来代替响应对象将处理结果写到响应体中。

2.JSP简单介绍

  1.JSP:java server pages:java服务器页面

  2.JSP文件只能存在于Web目录下

  3.JSP文件可以写:java代码、JS、html代码。

3.简单示例:index.jsp

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <%-- JSP文件在执行的时候,自动将文件中所有的内容写入到响应体中,从而节省书写 out.print --%>
 3 <html>
 4   <table border="2" align="center">
 5     <tr>
 6       <td>用户编号</td>
 7       <td>用户姓名</td>
 8       <td>用户密码</td>
 9     </tr>
10     <tr>
11       <td>001</td>
12       <td>jason</td>
13       <td>123</td>
14     </tr>
15     <tr>
16       <td>002</td>
17       <td>john</td>
18       <td>123</td>
19     </tr>
20   </table>
21 </html>

4.JSP文件中java命令书写规则

  1.执行标记:<%  java代码  %>

  index.jsp

1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 <%
3   // 在JSP文件中,只有书写在执行标记中的内容,才会被当做java代码执行。
4   int num1 = 10;
5   int num2 = 20;
6   int num3 = num1 + num2;
7   int num4 = num1 >= num2 ? num2:num1;
8 %>

  2.输出标记:<%=    %>

1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 <%
3   // 在JSP文件中,只有书写在执行标记中的内容,才会被当做java代码执行。
4   int num1 = 10;
5   int num2 = 20;
6 %>
7 变量num1的值是:<%=num1%><br/>
8 num1 + num2 = <%=num1 + num2%>

5.在JSP文件中导包: <%@ page import="java.util.List" %>

1 <%@ page import="java.util.ArrayList" %>
2 <%@ page import="java.util.List" %>
3 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
4 <%
5   // 在JSP文件中,只有书写在执行标记中的内容,才会被当做java代码执行。
6   List list = new ArrayList();
7 %>

6.在JSP中,所有的执行标记都被当做一个整体来看

7.JSP内置对象:request

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <!--
 3     JSP文件内置对象:request
 4         类型:HTTPServletRequest
 5         作用:在JSP文件运行时,读取请求包信息。
 6              与Servlet在请求转发过程中实现数据共享
 7     浏览器:http://localhost:8080/myweb/index.jsp?userName=mike&password=123
   测试:输入上面的网址即可 8 --> 9 <% 10 // 在JSP文件执行时,借助内置对象request读取请求包参数信息 11 String userName = request.getParameter("userName"); 12 String password = request.getParameter("password"); 13 %> 14 来访用户姓名<%=userName%><br/> 15 来访用户密码<%=password%>

8.JSP内置对象:session

 1 index.jsp
 2 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 3 <!--
 4     JSP文件内置对象:session
 5         类型:HTTPSession
 6         作用:在JSP文件运行时,可以通过session指向当前用户私人储物柜
 7               添加或者读取共享数据
 8     浏览器:http://localhost:8080/myweb/index.jsp?userName=mike&password=123
 9 -->
10 <%
11   // 将共享数据添加到当前用户私人储物柜
12   session.setAttribute("key1",200);
13 %>
14 
15 --------------------------------------------------------------------------------
16 index_2.jsp
17 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
18 <%
19     // index.jsp和index_2.jsp为同一个用户/浏览器提供服务
20     // 因此可以使用当前用户在服务端的私人储物柜进行数据共享
21     Integer value =(Integer) session.getAttribute("key1");
22 %>
23 index_2从当前用户中拿到的共享数据是<%=value%>>

测试:先访问index1.jsp。再访问index_2.jsp

8.JSP内置对象:application

 

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <!--
 3     JSP文件内置对象:application
 4         类型:ServletContext application   全局作用域对象
 5         作用:同一个网站中Servlet和JSP,都可以通过当前网站的全局作用域对象实现数据共享
 6 -->
 7 <%
 8     application.setAttribute("key1","hello world");
 9 %>
10 
11 ----------------------------------------------------------
12 在Servlet中
14 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
15         ServletContext application = request.getServletContext(); // 获取全局作用域对象
16         String value =(String) application.getAttribute("key1");
17         System.out.println(value);
18     }

 

一:Servlet与JSP的分工:
    Servlet:负责处理业务并得到【处理结果】  ---->大厨
    JSP:     负责将Servlet中【处理结果】写到响应体中 --->传菜员
二:Servlet 与 JSP之间调用关系:Servlet工作结束后,一般通过请求转发方式向Tomcat申请调用JSP
三:Servlet 与 JSP之间如何实现数据共享
    Servlet将处理结果添加到【请求作用域对象】
    JSP文件在运行时从【请求作用域对象】得到处理结果

9.JSP文件运行原理

  1.Http服务器调用JSP文件步骤:

    Http服务器做了下面的工作:

      1.将JSP文件编辑为一个Servlet接口实现类(.java)

      2.又把Servlet接口实现类编译为class文件(.class)

      3.接着创建这个class文件的实例对象,就是Servlet实例对象

      4.然后通过Servlet实例对象调用_jspService方法,将jsp文件写入到响应体中

10.web开发步骤:

1.准备表数据

2.创建表对应的实体类

3.创建Html页面

4.创建与Html页面对应的Servlet

    1.通过请求对象,读取请求头参数信息

    2.调用DAO类将得到的信息编辑成SQL语句,推送到数据库服务器并得到处理结果
        
        1.什么是DAO类?
            DAO(Data Access Object)数据访问接口
        
        2.DAO类有什么用?
            主要负责处理数据库操作,对于数据库中的数据做增删改查等操作的代码。
    
    3.将处理结果写入到请求作用域对象作为共享数据给JSP
    
    4.请求转发,向Tomcat申请info.jsp将结果写入到响应体中

JSP

上一篇:Mac_web自动化环境搭建


下一篇:Http