jsp九大对象
在jsp中内置了9个对象,无需创建该对象即可使用。其名称为固定名称。
1.out输出对象 - 属于JspWriter
print(): 输出
flush(): 刷新
close(): 关闭
2.request请求对象 - 属于HttpServletRequest
getParameter(): 获取请求的参数
setCharacterEncoding(""):设置请求的编码
getRemoteAddr():获取远程访问者的ip
getMethod():获取请求方式
getSession():获取session对象
3.response响应对象 - 属于HttpServletReponse
//重定向即重新跳转的路径
sendRedirect(""):重定向
getWriter(): 获取out对象
4.session会话对象 - 属于HttpSession
setAttribute()
getAttribute()
removeAttribute()
5.page对象:页面对象,每个jsp网页都存在该对象。 可以理解为this,指向该jsp文件。
6.application对象:应用对象。 它里面也可以保存数据。 生命周期:只要服务器不关闭,该对象中数据一直存在。
7.pageContext: 网页上下文对象,通过该对象可以获取其他8个对象。
getRequest():获取请求对象
getResponse():获取响应对象
8.config对象: 该对象可以获取web.xml配置文件中的参数。
9.exception: 异常对象,该对象必须在错误页面才会存在。
跳转方式
第一种:重定向redirect。
第二种:请求转发forward。
重定向:地址栏会发生改变,而且会生成一个新的请求对象。
请求转发:地址栏不会改变,而且不会生成新的请求对象。
request.getRequestDispatcher("/b.jsp").forward(request,response);//转发跳转
(请求转发更加节省内存。)
jsp四大作用域对象
在jsp中存在四个对象用来保存客户的数据,它们的保存周期各不相同。
- pageContext: 当前网页有效。
- request: 同一请求有效。
- session: 同一个会话有效,保存当前用户信息。
- application: 同一个应用有效。
setAttribute(key, value):保存数据
getAttribute(key):获取数据
removeAttribute(key):移除数据
保存周期越长,占用的内存时间越长。
EL表达式
EL表达式可以获取上面四个域对象中的数据。但是它的语法更为简洁,无需使用<% %>。
语法:${scope.key}:获取指定域中的key值。
简写:${key}:默认从pageContext扫描,如果找到对应的key,则停止扫描。 如果没有找到key,则扫描request。
jstl标签库
该标签库提供了大量的标签,这些标签可以完成对应的功能。 例如:if、for、redirect,用于替换java代码。
使用:需要导入对应的jar包
<%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/12/5Time: 11:37To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Title</title>
</head>
<body>
<%request.setAttribute("age", 17);//存放数据到request中String[] str = {"玩游戏", "看电影", "唱歌", "打篮球"};request.setAttribute("hobbys", str);
%><%--jstl可以结合el表达式--%>
<c:if test="${age>=18}"><h3>成年</h3>
</c:if>
<c:if test="${age<18}"><h3>未成年</h3>
</c:if><hr><ul><%--items:表示要变量的对象 var:每次变量把元素赋值的变量名。--%><c:forEach items="${hobbys}" var="h"><li>${h}</li></c:forEach>
</ul></body>
</html>
servlet
在java中,Servlet是用于创建动态Web内容的服务器端组件。Servlet运行在Tomcat服务器上,可以响应客户端(通常是web浏览器)发出的请求。Servlet的生命周期由服务器管理,主要包括初始化、请求处理和销毁三个阶段。
Servlet是一种Java类,它实现了javax.servlet.Servlet接口。Servlet主要用于处理HTTP请求和生成HTTP响应,可以用于创建动态网页、处理表单数据、管理会话等。
使用servlet
1.创建一个类并继承HttpServlet:
//创建一个类并继承HttpServlet
public class HelloServlet extends HttpServlet {//重写方法:@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~");}
}
2.第二步:在web.xml中注册servlet
<?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"><!--注册指定的servlet类:该类交于tomcat容器管理--><servlet><servlet-name>a</servlet-name><servlet-class>com.ykq.servlet.HelloServlet</servlet-class></servlet><!--请求路径要和servlet映射在一起--><servlet-mapping><servlet-name>a</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>
3.第三步:浏览器发送请求
http://localhost:8080/hello
简写方式
使用注解:
@WebServlet(name = "", urlPatterns = ""),其中name可以省略不写,urlPatterns为请求路径。