JSP(一):JSP原理

一 什么是JSP

Java server pages :java服务器端页面,用于动态web技术

与html区别:jsp页面中可以嵌入Java代码,为用户提供动态数据

                     html只能提供静态数据

二 原理

1.服务器内部工作

        IDEA中使用Tomcat的会在IDEA的tomcat中产生一个work目录

        我的电脑地址:

C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2021.2\tomcat\14243155-7ba0-4051-9234-f47d597a2f36\work\Catalina\localhost\hello\org\apache\jsp 

         发现页面转变成了java程序

         浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet

        JSP最终也会转变成一个java类

        JSP本质就是一个Servlet

//初始化
 public void _jspInit() {
  }
//销毁
  public void _jspDestroy() {
  }
//JSPService
  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException {

1.配置请求

2.内置一些对象

    final javax.servlet.jsp.PageContext pageContext;  //页面上下文
    javax.servlet.http.HttpSession session = null;     //session
    final javax.servlet.ServletContext application;     //applicationContext
    final javax.servlet.ServletConfig config;              //config
    javax.servlet.jsp.JspWriter out = null;                 //out
    final java.lang.Object page = this;                      //page:当前
    final javax.servlet.http.HttpServletRequest request   //请求

    final javax.servlet.http.HttpServletResponse response   //响应

3.输出爷面前增加的代码

       response.setContentType("text/html");          //设置响应的页面类型
      pageContext = _jspxFactory.getPageContext(this, request, response,
                                                                                 null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

 4.以上对象可以再JSP页面中直接使用

在JSP页面中:

只要是JAVA代码就会原封不动的输出

如果是HTML代码,就会被转换为 out.write(“name:”),输出到前端

JSP基础语法

任何语言都有自己的语法,jsp作为java会输的一种应用,他拥有一些自己扩充的语法,Java所有语言都支持

JSP表达式 

<%--JSP表达式
作用:用于将程序的输出,输出到客户端
<%= 变量或者表达式%>
--%>
<%= new java.util.Date()%>

JSP脚本片段

<%--  脚本片段--%>
<%
   int sum=0;
   for (int i =1;i<100;i++){
     sum+=1;
   }
  out.println("<h1>Sum"+sum+"</h1>");
%>

脚本片段的再实现

<%--  在代码中嵌入html元素--%>
<%
  for (int i =0 ;i<5;i++){
%>
   <h1>Hello,word   <%=i%></h1>
<%
   }
%>

JSP声明

<%--JSP声明--%>
   <%!
   static {
     System.out.println("Loading Servlet");
   }

   private int globalVar=0;

  public void kuang(){
    System.out.println("进入方法kuang");
  }
   %>

 会被编译到JSP声场Java类中,其他的会被生成到Service方法中,在jsp中,嵌入java代码即可

<%%>片段

<%=%>表达式输出一个值

<%!%>设置全局片段

<%--注释--%>注释

JSP<%----%>的注释不会在客户端显示,HTML的注释<!---->会显示 

四 JSP指令

<%@page args....%>

<%@include file=“”%>

 

 五 9大内置对象

PageContext 存东西

Request 存东西

Response

Session 存东西

Application {ServletContext} 存东西

Config {ServletConfig}

Out

Page

Exception

    pageContext.setAttribute("name1","1");//保存的数据在页面中有效
    request.setAttribute("name2","2");//保存的数据只在一次请求中有效,请求转发会携带这个书库
    session.setAttribute("name3","3");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
    application.setAttribute("name4","4");//保存的数据只在服务器中有效,打开服务器到关闭服务器

request:客户端向服务发送请求,产生的数据,用户看完就没用了,比如新闻

session:客户端向服务发送请求,产生的数据,用户看完一会还有用,比如购物车

application:客户端向服务发送请求,产生的数据,一个用户用完了,其他用户还可能使用,聊天

六 JSP标签、JSTL标签、EL表达式

EL表达式: ${ }

        获取数据、执行运算、获取web开发的常用对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值