jsp
JSP
jsp基础语法
<%-- 此注解客户端看不见 --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%-- <% %>: java脚本段,可以定义局部变量,编写语句 <%! %> 声明,可以定义全局(成员)变量,方法,类 <%= %> 表达式,数据一个变量或具体内容 --%> <%! String str = "hello"; // str 全局变量 %> <% System.out.println(str); out.print(str); %> <%=str // str全局变量在此使用 %> </body> </html>
- include静态包含
- 格式:<%@include file="要包含的页面地址"%>
- 特点:
- 将内容进行了直接的替换
- 静态包含只会生成一个源码文件,最终的内容全部在_jspService方法体中(源码文件中)
- 不能出现同名变量
- 运行效率高一点点。耦合性较高,不够灵活。
- include动态包含
- 格式:<jsp:include page="要包含的页面路径"></jsp:include>
- 特点:
- 动态包含相当于方法的调用
- 动态包含会生成多个源码文件
- 可以定义同名变量
- 效率高,耦合度低
- 当动态包含不需要传递参数时,include双标签之间不要有任何内容,包括换行和空格
- 使用动态包含传递参数
<jsp:include page="要包含的页面路径"> <jsp:param name="参数名" value="参数值"/> </jsp:include> 注:name属性不支持表达式,value属性支持表示 获取参数: request.getParameter(name); 通过指定参数名获取参数值
JSP四大域对象
<%-- 此注解客户端看不见 --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% pageContext.setAttribute("name1","xiao"); request.setAttribute("name2","wang"); session.setAttribute("name3","zheng"); application.setAttribute("name4","tao"); %> <jsp:forward page="test.jsp"></jsp:forward> </body> </html>
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2023/08/28 Time: 10:21 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% // 获取域对象 out.print(pageContext.getAttribute("name1")); out.print(request.getAttribute("name2")); out.print(session.getAttribute("name3")); out.print(application.getAttribute("name4")); %> <%-- page作用域:在当前页面有效,跳转后无效 request作用域:在一次请求中有效,服务端跳转有效,客户端跳转无效 session作用域:在一次会话中有效,服务端和客户端跳转有效 application作用域:在整个应用中有效 jsp跳转方式 <jsp:forward page="test.jsp"></jsp:forward> --%> </body> </html>
EL表达式的使用
- EL表达式操作的是域对象不能操作局部变量, 格式:${expression}或者${对象.属性}
- 如果获取对象为空,默认显示空字符串
- 范围从小到大依次是本页面-一次请求-一次会话-整个应用程序
- EL的查找方式是从小到大查找
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <title>El表达式</title> </head> <body> <% request.setAttribute("name","wang"); //一次请求 session.setAttribute("name","zheng"); //一次会话 application.setAttribute("name","tao"); // 整个应用程序 pageContext.setAttribute("name","xiao"); //当前页面 %> ${name} <%-- 结果为: xiao --%> </body> </html>
- El表达式的使用
<%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <title>El表达式的使用</title> </head> <body> <% List<String> lis = new ArrayList<>(); lis.add("aaa"); lis.add("bbb"); lis.add("ccc"); request.setAttribute("list",lis); %> 获取list集合的长度:${list.size()} </body> </html>
简单登录
后端
@WebServlet("/login") public class Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); String username = req.getParameter("username"); String password = req.getParameter("psd"); // 以下为判断参数是否为空 if (username == null ||"".equals(username.trim())){ req.setAttribute("msg","用户名不能为空"); req.getRequestDispatcher("login.jsp").forward(req,resp); return; } if (password == null ||"".equals(password.trim())){ req.setAttribute("msg","用户密码不能为空"); req.getRequestDispatcher("login.jsp").forward(req,resp); return; } // 以下判断用户密码是否正确 if (!"admin".equals(username)|| !"admin".equals(password)){ req.setAttribute("msg","登录失败"); req.getRequestDispatcher("login.jsp").forward(req,resp); return; } req.getSession().setAttribute("username",username); req.setAttribute("mgs","登录成功"); resp.sendRedirect("index.jsp"); } }
前端
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录</title> </head> <body> <form action="login" method="post"> <label> 用户名:<input type="text" name = "username"> <br> 密码: <input type="password" name="psd"> <br> <span style="color: crimson;font-size: 18px"><%=request.getAttribute("msg")%></span> <button>登录</button> </label> </form> </body> </html>
登录成功页
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <title>登录成功</title> </head> <body> <h2>欢迎<%= session.getAttribute("username") %>登录!</h2> </body> </html>
jsp.txt · 最后更改: 创建人 zheng

浙公网安备33082202000166号