jsp开发技术

一、为什么说JSP也是动态web开发的一项技术呢?这是因为写JSP虽然像是在写HTML,但是JSP允许在页面中嵌套Java代码,或者利用某个标签表示Java代码(EL与jstl)。这就使得我们在写JSP时能够获取请求对象Request和响应对象Response等这样的web开发常用对象,实现与浏览器的交互。

jsp在第一次被访问时会被Web容器翻译成servlet,在执行

过程:

第一次访问---->helloServlet.jsp---->helloServlet_jsp.java---->编译运行(实际运行jsp.java)最终运行class文件;

PS:被翻译后的servlet在Tomcat的work目录中可以找到;

二、page三大指令;

    1)   page指令

  2)   include指令

  3)   taglib指令

三、jsp 九大隐式对象

复制代码
名称                                         类型                                                             描述
out                                         javax.servlet.jsp.JspWriter                                  用于页面输出
request                                     javax.servlet.http.HttpServletRequest                      得到用户请求信息,
response                                    javax.servlet.http.HttpServletResponse                    服务器向客户端的回应信息
config                                      javax.servlet.ServletConfig                               服务器配置,可以取得初始化参数
session                                     javax.servlet.http.HttpSession                            用来保存用户的信息
application                                 javax.servlet.ServletContext                              所有用户的共享信息
page                                        java.lang.Object                                          指当前页面转换后的Servlet类的实例(在普通类中的this)
pageContext                                 javax.servlet.jsp.PageContext                             JSP的页面容器
exception                                   java.lang.Throwable                                       表示JSP页面所发生的异常,在错误页中才起作用
复制代码

 四、jsp有四大作用域 作用分别如下:

pageContext域:当前jsp页面范围

request域:一次请求

session域:一次会话

application域:整个web应用相当于ServletContext这个域);

五、

1)pageContext是一个域对象

setAttribute(String name,Object obj)

getAttribute(String name)

removeAttrbute(String name)

 

pageContext可以向指定的其他域中存取数据

setAttribute(String name,Object obj,int scope)

getAttribute(String name,int scope)

removeAttrbute(String name,int scope)

findAttribute(String name)

---依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找;

复制代码
<%@ 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>
    <% 
        pageContext.setAttribute("username", "小红帽");
        pageContext.setAttribute("username", "大红帽",PageContext.REQUEST_SCOPE);
        pageContext.setAttribute("username", "小蓝帽",PageContext.SESSION_SCOPE);
        pageContext.setAttribute("username", "小黄帽",PageContext.APPLICATION_SCOPE);
    %>
    <%=pageContext.findAttribute("username") %>
</body>
</html>
复制代码

 

 这个地方只打印出来了小红帽  这就是前面所说的 在某个域中获取后将不在向后寻找;因此在取名key值的时候 名字最好不要相同;

 

posted @   丿狂奔的蜗牛  阅读(495)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示