建设美食网站的目的和功能定位,wordpress 用户投稿,看网红直播做爰的网站,购物商城建设网站JSP语言入门 目录一、 基础概念1. 什么是JSP#xff1f;2. 工作原理3. 基本语法 二、 表达式语言#xff08;EL#xff09;1. 简介2. 语法 三、 JSTL#xff08;JSP Standard Tag Library#xff09;1. 简介2. 核心标签库3. 常用标签 四、 高级话题1. 会话管理2. 自定义标… JSP语言入门 目录一、 基础概念1. 什么是JSP2. 工作原理3. 基本语法 二、 表达式语言EL1. 简介2. 语法 三、 JSTLJSP Standard Tag Library1. 简介2. 核心标签库3. 常用标签 四、 高级话题1. 会话管理2. 自定义标签3. MVC模式 五、 实践项目1. 项目描述2. 项目结构 目录 JSPJavaServer Pages 是一种用于创建动态网页的技术允许在HTML页面中嵌入Java代码。 以下是一个详细的JSP教程涵盖从基础到高级的内容。 一、 基础概念
1. 什么是JSP JSP是一种服务器端技术类似于PHP和ASP主要用于生成动态网页内容。JSP文件扩展名为.jsp内部可以包含HTML、Java代码、以及JSP标签。 2. 工作原理 客户端请求用户通过浏览器请求一个JSP页面。服务器处理服务器接收到请求将JSP页面转换为一个ServletJava类并编译。响应生成Servlet处理请求生成HTML内容返回给客户端。 3. 基本语法 脚本元素用来嵌入Java代码。 % code %脚本片段 % expression %表达式 %! declaration %声明 指令元素用来设置JSP页面的全局属性。 % page %定义页面依赖比如编码格式、导入包等。 % include %引入文件。 % taglib %引入标签库。 动作元素用来执行特定任务。 jsp:forward请求转发。 jsp:include包含其他资源。 代码示例 % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleJSP示例/title
/head
body% String message Hello, JSP!;%h1% message %/h1
/body
/html
二、 表达式语言EL
1. 简介 ELExpression Language 是一种简洁的语法用于访问Java对象的属性调用方法等。EL使得在JSP中嵌入Java代码更加简单和直观。 2. 语法 ${expression}表达式语法用于输出值。支持基本运算、关系运算、逻辑运算 等。 示例代码 % page contentTypetext/html;charsetUTF-8 languagejava %
% taglib prefixc urihttp://java.sun.com/jsp/jstl/core %
html
headtitleEL示例/title
/head
bodyc:set varname valueJohn Doe /h1Hello, ${name}!/h1
/body
/html
三、 JSTLJSP Standard Tag Library
1. 简介 JSTL 是一个标准标签库为JSP提供了一组常用功能如条件判断、循环、国际化等。 2. 核心标签库 导入核心标签库% taglib prefix“c” uri“http://java.sun.com/jsp/jstl/core” % 3. 常用标签 条件判断c:ifc:choosec:whenc:otherwise循环c:forEachc:forTokens设置/移除变量c:setc:remove输出c:out 代码示例 % page contentTypetext/html;charsetUTF-8 languagejava %
% taglib prefixc urihttp://java.sun.com/jsp/jstl/core %
html
headtitleJSTL示例/title
/head
bodyc:forEach vari begin1 end5pNumber: ${i}/p/c:forEach
/body
/html 四、 高级话题
1. 会话管理 Session用于在客户端和服务器之间保存用户数据。 代码示例 %HttpSession session request.getSession();session.setAttribute(username, John Doe);
%
pUsername: % session.getAttribute(username) %/p 2. 自定义标签 创建自定义标签可以提高代码的重用性和可读性。步骤 创建标签处理类继承TagSupport或SimpleTagSupport。定义标签库描述文件TLD。在JSP页面中导入并使用自定义标签。 3. MVC模式 将JSP与Servlet结合使用实现MVCModel-View-Controller设计模式。ModelJavaBeans或其他Java类负责业务逻辑和数据。ViewJSP页面负责显示数据。ControllerServlet负责处理请求和响应。 五、 实践项目
1. 项目描述 创建一个简单的用户登录系统包括用户注册、登录、注销功能。 2. 项目结构
- WebContent- index.jsp- login.jsp- register.jsp- welcome.jsp- WEB-INF- web.xml- lib- jstl.jar- standard.jar
- src- com.example- LoginServlet.java- RegisterServlet.java- User.java 示例代码 index.jsp % page contentTypetext/html;charsetUTF-8 %
html
headtitle首页/title
/head
bodyh1欢迎/h1a hreflogin.jsp登录/a | a hrefregister.jsp注册/a
/body
/html login.jsp % page contentTypetext/html;charsetUTF-8 %
html
headtitle登录/title
/head
bodyh1登录/h1form actionLoginServlet methodpostlabel forusername用户名/labelinput typetext idusername nameusername requiredbrlabel forpassword密码/labelinput typepassword idpassword namepassword requiredbrbutton typesubmit登录/button/form
/body
/html register.jsp % page contentTypetext/html;charsetUTF-8 %
html
headtitle注册/title
/head
bodyh1注册/h1form actionRegisterServlet methodpostlabel forusername用户名/labelinput typetext idusername nameusername requiredbrlabel forpassword密码/labelinput typepassword idpassword namepassword requiredbrbutton typesubmit注册/button/form
/body
/html welcome.jsp % page contentTypetext/html;charsetUTF-8 %
% page importjavax.servlet.http.HttpSession %
%HttpSession session request.getSession();String username (String) session.getAttribute(username);if (username null) {response.sendRedirect(login.jsp);}
%
html
headtitle欢迎/title
/head
bodyh1欢迎, % username %!/h1a hrefLogoutServlet注销/a
/body
/html LoginServlet.java package com.example;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;public class LoginServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String username request.getParameter(username);String password request.getParameter(password);if (admin.equals(username) password.equals(password)) {HttpSession session request.getSession();session.setAttribute(username, username);response.sendRedirect(welcome.jsp);} else {response.sendRedirect(login.jsp);}}
} RegisterServlet.java package com.example;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;public class RegisterServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String username request.getParameter(username);String password request.getParameter(password);// 简单模拟注册逻辑if (username ! null password ! null) {HttpSession session request.getSession();session.setAttribute(username, username);response.sendRedirect(welcome.jsp);} else {response.sendRedirect(register.jsp);}}
} web.xml web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaee version3.1servletservlet-nameLoginServlet/servlet-nameservlet-classcom.example.LoginServlet/servlet-class/servletservlet-mappingservlet-nameLoginServlet/servlet-nameurl-pattern/LoginServlet/url-pattern/servlet-mappingservletservlet-nameRegisterServlet/servlet-nameservlet-classcom.example.RegisterServlet/servlet-class/servletservlet-mappingservlet-nameRegisterServlet/servlet-nameurl-pattern/RegisterServlet/url-pattern/servlet-mapping
/web-app