2023年3月

《Java Web入门经典.pdf》中第3章 末尾:,

创建一个web动态项目SqlServerTest,创建一个JSP文件index.jsp ,启动服务器 浏览器输入  http://localhost:8080/SqlServerTest/ 就可以运行了

下面这段话将JSP和Serlet的关系描述得非常好

书中介绍<jsp:useBean> 中属性 scope:

<%@ page language="java" 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>FDSAFDAF家乐福大家乐福</br>
    <%request.setAttribute("data", "</br>ewqrewqr</br>");
String data
= (String) pageContext.getAttribute("data", pageContext.REQUEST_SCOPE);
out.write(data);
pageContext.findAttribute(
"data"); //page request session application//el 表达式//${data};//相当于这句pageContext.findAttribute("data"); %> </body> </html>

pageContext
(称之为page域) 是四个域的最小的域,只能在当前页中;
request
(称之为request域) 请求范围内
session
(称之为session域)会话范围内
servletContext
(称之为application域) 应用范围内
明确如下问题:
什么是域?
这4个对象的生命周期?
哪种情况下用哪种域对象。
1、request:如果客户向服务器发请求,产生的数据,用户看完就没用了,像这样的数据就存在request域,像新闻数据,属于用户看完就没用的
2、session:如果客户向服务器发请求,产生的数据,用户用完了等一会儿还有用,像这样的数据就存在session域中,像购物数据,用户需要看到自己购物信息,并且等一会儿,还要用这个购物数据结帐
3、servletContext:如果客户向服务器发请求,产生的数据,用户用完了,还要给其它用户用,像这样的数据就存在servletContext域中,像聊天数据

从四个域里面找数据;
pageContext.findAttribute("data"); //page request session application
//el 表达式
${data};/
/相当于这句pageContext.findAttribute("data");

=====特殊用法:

JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。

================

<jsp:include>
标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。
语法:
<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />

page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。

----------

<jsp:forward>
标签用于把请求转发给另外一个资源。
语法:
<jsp:forward page="relativeURL | <%=expression%>" />
page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。

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

Tip:
<jsp:param>标签

当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
语法1:
<jsp:include page="relativeURL |
<%=expression%>
">
<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>
语法2:
<jsp:forward page="relativeURL | <%=expression%>">
<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>
<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。

在web.xml 里面配置servlet不起作用,所以配置jsp,然后在jsp里面跳转到servlet去   ???  第八天中的《08-jsp常用标签.avi》

在web.xml里面先设定 14.jsp 为默认首页,然后在14.jsp 里面设定跳转到servlet 代码里面去

映射到其他地址去: