JSP备忘录02--JSP入门请求转发与重定向

 简单的JSP入门知识,涉及虚拟路径与虚拟主机等预备知识。request和response内置对象,请求转发与重定向的应用和区别

文章目录

预备知识

一、虚拟路径和虚拟主机

虚拟路径

虚拟主机

二、JSP页面简单分析

1.JSP基础分析

2.指令

3.JSP内置对象

总结



预备知识

JSP要在相关容器中运行,我用的是Tomcat服务器。在Tomcat文件的结构中,WEB-INF/web.xml 设置访问的首页。


一、虚拟路径和虚拟主机

  • 虚拟路径

 项目默认访问地址为  E:\Tomcat\apache-tomcat-8.5.58\webapps  ,可以修改,既将web项目配置在其他目录下(虚拟路径)。

打开 conf文件夹下的server.xml文件 ,找到

              unpackWARs="true" autoDeploy="true">

  

 

显然,主机名为localhost,默认访问的文件夹为webapps。想要访问其他路径下的文件夹的项目,此时需要再    上写虚拟的路径(既实际访问其他路径,该路径虚拟出现在webapps下),

在下面添加

              unpackWARs="true" autoDeploy="true">

 

   

 path="/view" 为虚拟路径,表示在webapps下虚拟出一个view的文件夹,docBase="F:\view" 表示项目实际存在的路径。

在 F:\view 目录下,粘贴一份 WEB-INF 文件夹。将其中的web.xml文件中   进行重新编辑,如下:


 
        MySQLJOIN.html    
   

重启Tomcat后在浏览器输入 http://127.0.0.1:8080/view/MySQLJOIN.html

回车,即可展示保存到 F:\view 下的网页文件。

 如果不想重启Tomcat直接实现,在 \apache-tomcat-8.5.58\conf\Catalina\localhost 文件夹下新建

项目名.XML,将上文中的Context 写入即可。

  • 虚拟主机

本机在使用自有的 hosts文件 解析为指定的IP地址。 打开 conf/server.xml 文件,在   节点中,defaultHost="localhost"   改为  defaultHost="DShost"   ,

---------------------------------------------------------------------

在Host 节点上新建一个同级别的Host节点,内容如下:



     

C:\Windows\System32\drivers\etc,以管理员权限打开hosts文件,添加一行

127.0.0.1     DShost

重启Tomcat,  输入网址即可实现虚拟主机的效果(端口号改为80就可以不必输入端口号)http://localhost:8080http://localhost:8080

注意 ,path 如果写成  Path  就会报错 462.

二、JSP页面简单分析

1.JSP基础分析

代码如下(示例):

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




Insert title here


    helleo this is JSP 03
    
    <%
    //想回车,在后面加 “
” out.print(
+" --this is jsp code***--->"); out.print(" --this is jsp code***--->"); %>

看起来像在HTML中加入<% %> 中,在其中输入Java脚本语言,可以在其中定义局部变量。也可以使用 <%! ...%>,用以定义全局变量和方法。或者纯粹的输出表达式 <%= ...%>,在其中直接写输出表达式 (不必加“;”)。但实际上,JSP不是直接转换为Java而是转换为格式为serverlet的Java, 在 E:\Tomcat\apache-tomcat-8.5.58\work\Catalina\localhost\ROOT\org\apache\jsp   的路径下,可以看到:

JSP备忘录02--JSP入门请求转发与重定向_第1张图片

打开Java文件,即可看到:

 JSP备忘录02--JSP入门请求转发与重定向_第2张图片

所以JSP本质还是Java,是符合一定规范的Java脚本文件(serverlet)。

2.指令

JSP头部代码如下 :

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

 以page指令为例。在网页开头,有诸多属性。包括 import (导包指令)。导入Date包,在body中写入如下代码:


    hello this is JSP 03
    <%!
    
    Date date = new Date();
    %> 
   
   
    <%
    out.print("
"+"--this is jsp code***--->"+date);
     %> 

显示效果如下:(没有 import会报错)

JSP备忘录02--JSP入门请求转发与重定向_第3张图片



3.JSP内置对象

上述的 date 是导包进入文件还有通过new方式创建出来的。JSP 有九大内置对象。

 request对象: 存储客户端向服务端发送请求信息。

request对象主要方法
String getParameter(String  s)  获取请求信息
String[] getParameterVaues(String  s)   获取多个请求信息
setCharacterEncoding(String  encode) 设置(post方式)编码格式,Tomcat8之后默认为utf-8
String getRequestDispatcher(".jsp").forward(request,response). 请求转发等
ServerletContext  getServerletContext() 获取项目的ServerletContext对象

此外还有 response对象,session对象,application对象,out对象,pageContext对象,config对象,page对象,exception对象

JSP备忘录02--JSP入门请求转发与重定向_第4张图片


 response对象

void  addCookie(Cookie cookie)  服务端向客户端增加cookie对象
void sendReditect("*.jsp")   

重定向到指定的文件下

(throws IOException)

void setContentType("encoding")   设置服务端响应的编码

总结

 通过对比 request和response的方法(请求转发  与 重定向),二者都是以服务端为中心工作的。无论是request的(服务端将客户端的)请求转发,还是(服务端将客户端)的请求重新定向,都需要理解 服务端--客户端  之间的关联。

 response.sendRedirect("sucess.jsp");  重定向
 request.getRequestDispatcher("sucess.jsp").forward(request,response);  请求转发

请求转发 重定向
地址栏是否改变  不变
是否保留第一次请求时的数据    保留     不保留
请求次数  (响应次数)  1 2

 

你可能感兴趣的:(JSP学习,开发语言,java,tomcat,eclipse,服务器)