首页 > 编程语言 >Java-JSP(1)

Java-JSP(1)

时间:2022-08-30 23:56:26浏览次数:53  
标签:Java pageContext final JSP jsp servlet javax out

JSP

1.jsp原理

jsp全称JavaServer Pages,是一种动态网页技术,JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。jsp文件在最后会会转变为servlet代码。
IDEA tomcat的工作空间

我们发现jsp页面转变成立java

浏览器向服务器发送请求,其实就是在访问servlet

//初始化
public void _jspInit() {
  }
//销毁
  public void _jspDestroy() {
  }
//jsp服务
  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)

判断请求

内置对象

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

输出页面前增加的代码

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;

这些对象我们可以在jsp中直接使用
我们在<%%>中写Java代码

<%
    session.invalidate();
%>

源码

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 30/8/2022
  Time: 下午7:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>hello</title>
</head>
<body>
<%
    String name="jinnice";
%>
name:<%=name%>
</body>
</html>

在jsp中
java代码原封不动输出
html代码就会用out.write

jsp基础语法和指令

我们可以创建普通项目,然后在项目上添加web支持
jsp是Java的一种技术应用也有属于自己的语法
我们可以通过热部署方式使用tomcat不用每次都重新启动,部署工件时用war exploded
jsp使用

<%--jsp变量或表达式
用来将程序输出到客户端
<%=变量或者表达式%>
--%>
  <%= new java.util.Date()%>
<%--jsp脚本片段--%>
  <%
    int sum=0;
    for(int i=0;i<=100;i++)
    {
      sum+=i;
    }
    out.print("<h1>sum="+sum+"<h1>");
  %>

jsp声明,在<%!>中可以写方法和全局变量

<%!
   public void say()
   {
     System.out.println("welcome");
   }
 %>

jsp声明会被编译到jsp生成的jsp的类里,其他的会到jspservice方法

jsp指令

定制错误页面

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 30/8/2022
  Time: 下午11:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page errorPage="error/500.jsp" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    int i=1/0;
%>
</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 30/8/2022
  Time: 下午11:06
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<img src="../img/河大景色.jpg">
</body>
</html>

在web.xml中定制错误页面

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <error-page>
        <error-code>500</error-code>
        <location>/error/500.jsp</location>
    </error-page>
</web-app>

标签:Java,pageContext,final,JSP,jsp,servlet,javax,out
From: https://www.cnblogs.com/jinnice/p/16638549.html

相关文章

  • java找值的方法
    1、找最大值(1)先假设第一个元素最大,赋值给max(2)后面的元素与max比较,如果有比max大的,就重新修改max的值2、找最大值及其下标(1)最大值只有一个设置两个变量,一个是ma......
  • Java入门-基础语法(变量、常量、作用域)
    变量、常量、作用域变量是可以变化的量,Java是强类型语言,每个变量都必须声明其类型,变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量作用域分为类变量......
  • Java入门-基础语法(数据类型转换)
    类型转换运算中不同类型的数据先转化为同一类型,然后进行运算。(byte<short<char<int<long<float<double)强制转换:由高到低(类型)变量名自动转换:由低到高注意事项:不能把......
  • java8新特性-lambda、引用
    1./***Lambda表达式的使用举例**/publicclassLambdaTest{@Testpublicvoidtest1(){Runnabler1=newRunnable(){@Ove......
  • Java Http客户端选型
    JDK自带HTTPURLConnect:功能单一ApacheHttpClienthttps://hc.apache.org/index.html是一个比较古老的HTTP框架,使用非常普遍。OkHTTPhttps://square.github.io/okhttp......
  • JAVA入门基础_从零开始的培训_MYSQL基础
    目录1、数据库概述与MYSQL5.7、MYSQL8.0安装篇(基于Windows)MYSQL是什么,为什么要使用MYSQLMYSQL的四个版本MYSQL环境搭建MYSQL的安装与卸载Windows10下安装MYSQL8.26版......
  • JAVA入门基础_从零开始的培训_MYSQL高级
    目录第1章Linux下MySQL的安装与使用Linux下MYSQL的卸载安装MYSQL之前的准备步骤正式安装检查/tmp临时目录权限安装前检查依赖并卸载mariadb按照顺序依次安装MYSQL服务的初......
  • 工具函数(JavaScript)——如何判断设备是不是移动端
    浏览器有一个Navigator接口,表示用户代理的状态和标识。Navigator.userAgent可以知道客户端的设备类型。请求的请求标头有一个user-agent字段,内容中包含了设备型号的信......
  • Java常用编程类库
    Java语言已经有许多非常成熟的开源基础类库,封装了日常开发中的各种常用操作,如:对象判空,字符串编码,本地缓存等等。可以直接在项目中引入对应类库使用即可,或者参与完善相应类......
  • java springboot 初体验 (十二)对接eureka
    上一篇javaspringboot初体验(十一)对接mysqlhttps://www.cnblogs.com/zwjvzwj/p/16620045.html搭建一个eureka注册服务 创建服务     pom文件......