🙈作者简介:练习时长两年半的Java up主
🙉个人主页:老茶icon
🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎
📚系列专栏:Java全栈,计算机系列(火速更新中)
💭 格言:种一棵树最好的时间是十年前,其次是现在
🏡动动小手,点个关注不迷路,感谢宝子们一键三连
目录
- 课程名:JavaWeb
- 内容/作用:知识点/设计/实验/作业/练习
- 学习:JavaWeb+JSP
- 环境与设备
- JSP
- JSP的组成
- 1.HTML元素*
- 2.Java脚本*
- 3.表达式*
- 4.注释
- 5.指令
- 6.声明
- 7.动作
- 路径问题
- 绝对路径
- 相对路径
- 跳转
- HTML to HTML/JSP
- HTML to Servlet
- Servlet/JSP to Servlet/JSP/HTML
- 请求转发
- 重定向
- 跳转过程中传递参数
- 总结
课程名:JavaWeb
内容/作用:知识点/设计/实验/作业/练习
学习:JavaWeb+JSP
环境与设备
1.软件:IntelliJ IDEA 2022.3.2
2.环境:Windows 11 and JDK 11
JSP
Java Server Pages
使用Java开发,运行在服务器上的页面,称为JSP。
JSP页面的后缀名为.jsp
由于最初由Servlet编写页面,会在Servlet中出现大量的HTML代码,使用极不方便,
由SUN公司主导推出JSP,在HTML页面中嵌入Java代码,简化了页面的编写过程,页面也成为动态页面。
JSP实际是一个java类,具体为一个Servlet,第一次访问某个JSP页面,相当于编译运行Servlet,所以会慢一些。
访问JSP的流程:编译对应的Servlet–>运行Servlet。
JSP的生命周期同Servlet。
使用JSP时,可以导入该依赖,在JSP中方便提示
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
JSP的组成
1.HTML元素*
2.Java脚本*
<%
java代码;
%>
3.表达式*
用于在页面中输出变量或字符串。
无需分号。
<%=变量%>
4.注释
jsp注释在访问jsp时不会在浏览器中看到
html注释在访问jsp时会再浏览器中看到
<%--注释--%>
5.指令
<%@ 指令名 属性="值"%>
- page指令
- 用于设置当前页面的属性
- include指令
- 用于嵌入其他页面
- taglib指令
- 用于导入其他标签库
6.声明
可以在这里定义方法、全局变量等
<%!
void fun(){}
%>
7.动作
使用标签定义一些功能。
<jsp:单词></jsp:单词>
//包含另一张页面
<jsp:include page="路径"></jsp:include>
路径问题
绝对路径
完整路径
相对路径
-
/
从项目根目录出发。即域名+端口号
-
./
从当前位置出发
-
…/
退出当前目录后出发
如当前位于localhost:8080/shop/pages/index.html
在该页面中,如果使用
<img src='/xxx.jpg'>
表示访问localhost:8080/xxx.jpg
<img src='./xxx.jpg'>
表示访问localhost:8080/shop/pages/xxx.jpg
<img src='../xxx.jpg'>
表示访问localhost:8080/shop/xxx.jpg
跳转
HTML to HTML/JSP
<a href="另一个页面的路径">跳转</a>
<form action="另一个页面的路径">
<input type="submit">
</form>
HTML to Servlet
<a href="某个servlet的URL映射">跳转</a>
<form action="某个servlet的URL映射">
<input type="submit">
</form>
Servlet/JSP to Servlet/JSP/HTML
请求转发
request.getRequestDispatcher("目的路径").forward(request,response)
- 使用请求转发跳转到目的地后,浏览器的地址栏是最初访问的路径
- 可以在请求转发时,在request对象中保存数据,如request.getParameter()、request.setAttribute()
- 在执行查询时,通常将查询后的结果保存在request对象中后,使用请求转发跳转到页面中
重定向
response.sendRedirect("目的路径");
- 使用重定向跳转到目的地后,浏览器的地址栏是最终访问的目的地路径
- 如果在重定向时使用request对象保存数据,后续无法获取保存的内容
- 在执行增删改后使用重定向跳转到目的地,防止重复提交
跳转过程中传递参数
-
由页面发送数据到servlet或jsp,通常使用表单元素或在某个URL后使用"?参数=值"方式提交参数,获取时使用request.getParameter(“参数”)获取
<a href="xxxx?id=11">删除</a> <form action="xxxx" > <input type="hidden" name="id" value="11"> </form> //返回值为String String str=request.getParameter("id");
-
由servlet发送数据到页面,使用request.setAttribute(String str,Object obj)保存obj到请求对象中,命名为str,获取时使用request.getAttribute(String str)
public class XXXServlet extends HttpServlet{ protected void service(HttpServletRequest req,HttpServletResponse resp){ List obj = new ArrayList(); req.setAttribute("list",obj); req.getRequestDispatcher("xxx.jsp").forward(req,resp) } }
<% //返回值为Object类型 Object obj = request.getAttribute("obj"); List list = (List) obj; %>
总结
好好学习,天天向上。
往期专栏 |
---|
Java全栈开发 |
数据结构与算法 |
计算机组成原理 |
操作系统 |
数据库系统 |
物联网控制原理与技术 |