美文网首页
JavaWeb之jsp

JavaWeb之jsp

作者: 伍陆柒_ | 来源:发表于2019-04-22 16:41 被阅读0次

jsp就是一个可以写java代码的html,jsp的本质是一个Servlet,因为tomcat会把jsp编译成一个Servlet的实现类,通过打印看到页面内容

jsp的9大隐式对象

final javax.servlet.http.HttpServletRequest request
final javax.servlet.http.HttpServletResponse response
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
// 还有exception对象,一共9个

①request:客户端的请求信息被封装在request对象中,通过它才能了解用户的需求,然后做出响应
②response:包含了响应客户请求的有关信息,但在JSP中使用很少
③pageContext:页面的上下文,是PageContext的一个对象,可以从该对象中获取到其他8个隐含对象,也可以获取到当前页面的其他信息
④session:指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,知道客户端与服务器断开连接为止
⑤application:代表当前web应用,是ServletContext对象,能实现用户间数据的共享,可存放全局变量,它开始于服务器的启动,直到服务器的关闭,在此期间,此对象一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命周期
⑥config:当前JSP对应的Servlet的ServletConfig对象,可获取该Servlet的初始化参数(开发时基本不用),需要通过映射的地址才可以。
⑦out:JspWriter对象,调用out.println()可以直接把字符串打印到浏览器上
⑧page:page对象就是指向当前JSP页面本身,类型为Object,有点类似于类中的this,几乎不使用
⑨exception:该对象是一个例外对象,只有页面是一个错误页面,即isErrorPage设置为true的时候(默认为false)才能使用,否则无法编译。

域对象

pageContext:对属性的作用域是当前页面
request:对属性的作用域是同一个请求
session:对属性的作用域是一次会话(默认浏览器的一次打开到关闭)
application:对属性的作用域是整个服务周期
域对象最重要的方法
void setAttribute(String,Object) 设置属性
Object getAttribute(String) 获取属性

请求转发和请求重定向

它们都能实现资源跳转
①请求转发只有一次请求,重定向有两次
②请求转发不能看见最终申请资源的URL,而重定向可以
③请求转发只能转发站内资源‘,重定向可以请求站外资源

请求转发的方法:
request.getRequestDispatcher("/login_success.jsp").forward(request, response);
请求重定向的方法
response.sendRedirect("login_success.jsp");

绝对路径的必要性

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="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>Insert title here</title>
</head>
<body>
    <h1>Login3 Page</h1>
    <a href="<%= request.getContextPath() %>/user/login3"></a>
    <form action="<%= request.getContextPath() %>/user/login3" method="post">
        <input type="text" name="username">
        <input type="password" name="password">
        <button>提交</button>
    </form>
</body>
</html>
// 请求转发/代表项目根目录
request.getRequestDispatcher("/jsp/login_success.jsp").forward(request, response);
// 重定向request.getContextPath()获取项目根目录
response.sendRedirect(request.getContextPath()+"/jsp/login_fail.jsp");

相关文章

  • JavaWeb之JSP

    概念: 简化 Servlet 编写的一种技术,将 Java 代码和 HTML 语句混合在同一个文件中编写,只对网页...

  • JavaWeb之JSP

    概念:1)JSP(Java Server Page)是Java服务器端动态页面技术。是sun公司制订的一种服务器端...

  • JavaWeb之 JSP

    JSP三大指令 一个jsp页面中,可以有0~N个指令的定义! page -- 最复杂 pageEncoding和...

  • JavaWeb之jsp

    jsp就是一个可以写java代码的html,jsp的本质是一个Servlet,因为tomcat会把jsp编译成一个...

  • JavaWeb之JSP

    八、JSP 目录:什么是JSP、JSP原理、JSP基础语法、JSP指令、9大内置对象、JSP标签 JSTL标签 E...

  • 第六周

    JavaWeb 添加updateUser.jsp页面 updateUser.jsp?userId=<%=lists...

  • java 面试

    一、javaWeb知识点: jsp和servlet的区别 jsp本质就是Servlet,jsp的工作原理是:JSP...

  • javaweb之jsp标签

    1.JSP标签简介 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能...

  • JavaWeb基础之JSP

    什么是JSP? Java Server Page:java服务器页面,也和servlet一样用于开发动态web技术...

  • javaweb之jsp指令

    1.JSP指令简介 JSP指令是为JSP引擎设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面...

网友评论

      本文标题:JavaWeb之jsp

      本文链接:https://www.haomeiwen.com/subject/bqmygqtx.html