2023年6月27日发(作者:)
Web基础(Java前端基础)1、Javaweb1.1 基本概念web开发:web,代表⽹页(⽹站)的意思,静态web:列如静态web页⾯设计使⽤的:html,css。静态web性质:提供给所有⼈看的数据始终不会发⽣变化。动态web⽐如:淘宝、⽹易云、⼏乎所有的⽹站都使⽤动态web。它提供给所有⼈看到的数据始终会发⽣变化,每个⼈在不同的时间,不同的地点看到的信息各不相同。技术栈:Servlet/JSP,ASP,PHP。在Java中,动态web资源开发的技术称为Javaweb。1.2 web应⽤程序web应⽤程序:可以提供浏览器访问的程序:、.....多个web资源,这些web资源可以被外界访问,对外界提供服务。我们所访问的任何⼀个页⾯或者资源,都存在这个世界的某⼀个⾓落的计算机上。URL:在WWW上,每⼀信息资源都有统⼀的且在⽹上唯⼀的地址。地址就叫URL。这个统⼀的web资源会被放在同⼀个⽂件夹下,web应⽤程序—>Tomcat:服务器⼀个web应⽤由多部份组成(⽐如:静态web,动态web)Web组成:前端:html,css,js技术:jsp,servletJava程序jar包配置⽂件(Properties)Web应⽤程序编写完毕后,若想提供给外界访问,需要⼀个服务器来统⼀管理。 1.3 静态web*.htm,*html,这些都是⽹页的后缀,如果服务器上⼀直存在这些东西,我们就可以直接进⾏读取,通络。概念图:静态web存在的缺点:1、web页⾯⽆法动态的更新,所有⽤户看到的都是同⼀个页⾯。2、它⽆法和数据库交互(数据库⽆法持久化,⽤户⽆法交互)Javascript:Javascript中的轮播图,点击特效:就是伪动态页⾯。Javascript:在实际开发中,它⽤的最多。SBScript 1.4 动态web页⾯会动态的展⽰:web的页⾯展⽰的效果因⼈⽽异。概念图:客户端连接到服务器:服务器中有⼀个专门处理的web,这个web可以动态的连接资源(这个资源是连接到数据库的)这个动态web资源在连接到⼀个WebServer(Server连接着我们的硬盘:⽐如C盘、D盘也叫做⽂件系统)通过Server响应我们的客户端。动态web缺点:加⼊服务器的动态web资源如果出现了错误,我们需要重新编写我们的后台程序,重新发布。(就是常见的:停机维护)优点:1、web页⾯可以动态更新,所有⽤户看到的不是同⼀个页⾯。2、它可以与⽤户交互(数据持久化:注册,商品信息,⽤户信息...)2、web服务器Web服务器⼀般指⽹站服务器,是指驻留于因特⽹上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置⽹站⽂件,让全世界浏览;可以放置数据⽂件,让全世界下载。⽬前最主流的三个Web服务器是Apache、 Nginx 、IIS。2.1 技术讲解1、ASP:(动态服务器页⾯)ASP它是微软的:ASP也是国内最早流⾏的。它在HTML中嵌⼊了VB的脚本,ASP+COM。在ASP开发中,基本⼀个页⾯都有⼏千⾏业务代码,页⾯及其让⼈眼花缭乱。ASP的维护成本⾼。2、PHP:(超⽂本预处理器)PHP专门开发web(前端)的软件。优点:开发速度很快,功能很强⼤,可以跨平台操作,代码也很简单。(在我国70%的都是中⼩型⽹站,WP是⼀个开源的博客引擎,也可以去做⼀些⽹站)缺点:⽆法乘载⼤访问量的情况(有局限性)3、JSP/Servlet:B/S:Browser/Server,浏览器和服务器模式。C/S:Client-Server,客户端和服务器。sun公司主推的B/S架构。基于Java语⾔的(所有的⼤公司,或者⼀些开源的组件,都是⽤Java写的)它的语法像ASP:⽽学ASP的⼈就可以⽅便的转JSP。(加强市场的竞争度)优点:可以乘载三⾼问题带来的影响。(三⾼:⾼并发,⾼可⽤,⾼性能)2.2 web服务器服务器就是⼀种被动的操作,⽤来处理⽤户的⼀些请求和给⽤户⼀些响应信息。1、IIS:IIS是微软的:ASP是本⼟的,也是Windows中⾃带的服务。2、Tomcat图⽚:⾯向百度了解Tomcat:Tomcat是Apache 软件基⾦会(Apache Software Foundation)的Jakarta 项⽬中的⼀个核⼼项⽬,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,⽽且免费,因⽽深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为⽐较流⾏的Web 应⽤服务器。Tomcat 服务器是⼀个免费的开放源代码的Web 应⽤服务器,属于轻量级应⽤,在中⼩型系统和并发访问⽤户不是很多的场合下被普遍使⽤,是开发和调试JSP 程序的⾸选。对于⼀个Java初学web的⼈来说,它是最佳的选择。⽽Tomcat 实际上运⾏JSP 页⾯和Servlet。Tomcat最新版本为10.0.52.3 下载模板适⽤于所有下载软件。列如下载tmocat模板:1、安装 or 解压。2、了解配置⽂件及⽬录结构。3、了解下载的这个东西的作⽤。3、Tomcat3.1 Tomcat安装tomcat官⽹:下载:
3.2 Tomcat启动和配置
⽂件夹作⽤: 3.3 启动和关闭Tomcat1、进⼊bin⽂件找到开启:Tomcat默认端⼝号: 2、配置环境变量(可选)4、Http超⽂本传输协议(Hyper Text Transfer Protocol,HTTP)是⼀个简单的请求-响应协议,它通常运⾏在TCP(协议)之上。4.1 什么是HTTPHTTP(超⽂本传输协议)是⼀个简单的请求-响应协议,通常运⾏在TCP之上。常见的⽂本:html,字符串,....常见的超⽂本:图⽚、⾳乐、视频、定位、地球......http端⼝:80Https:是安全的Https端⼝:4434.2 Http的两个时代http1.0:HTTP/1.0:客户端可以与web服务器连接后,只能获得⼀个web资源。在请求过程中,请求不到就会断开连接。http2.0:HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。4.3 Http请求请求过程:客户端—>发请求(Request)—>服务器—>百度—控制台-⽹络: 1、请求⾏请求⾏中的请求⽅式:GET请求⽅式:Get,Post,列如hml中的:HEAD,DELETE,Get:请求能够携带的参数⽐较少,⼤⼩会限制,会在浏览器的URL地址栏显⽰数据内容,不安全,但是⾼效。Post:请求能够携带的参数没有限制,⼤⼩没有限制,不会在浏览器的URL地址栏显⽰数据内容,安全,但是不⾼效。2、消息头12345Accept:text/htmlAccept-Encoding:gzip,deflate,brAccept-Language:zh-CN,zh:q=0.9 语⾔Cache-Control:max-age=0Connection:keep-alive123456Accept: // 告诉浏览器,它所⽀持的数据类型Accept-Encoding: // ⽀持哪种编码格式 列如:GBK,UTF-8,GB2312,ISO8859-1Accept-Language: // 告诉浏览器,它的语⾔环境Cache-Control: // 缓存控制Connection: // 告诉浏览器,请求完成是断开还是保持连接Host: // 主机 4.4 Http响应响应过程:服务器—>响应—>客户端—>百度—>控制台—>⽹络:1234Cache-Control:private // 缓存控制Connection:keep-Alive // 连接Content-Encoding:gzip // 编码Content-Type:texr/html // 类型1、响应体
12345678Accept: // 告诉浏览器,它所⽀持的数据类型Accept-Encoding: // ⽀持哪种编码格式 列如:GBK,UTF-8,GB2312,ISO8859-1Accept-Language: // 告诉浏览器,它的语⾔环境Cache-Control: // 缓存控制Connection: // 告诉浏览器,请求完成是断开还是保持连接Host: // 主机Refresh: // 告诉客户端,多刷新⼀次Location: // 让⽹页重新定位2、响应状态码
200:请求响应成功。 常见的:2003xx:请求重定向。重定向的意思是:重新定位到我给你设置的位置上。4xx:找不到资源。 常见的:404意思是资源不存在,找不到该资源。5xx:服务器代码错误。 常见的:500 502:⽹关错误。5、Maven我为什么要学这个技术?1、在Javaweb开发中,需要使⽤⼤量的jar包,⽽这个jar包需要我们⼿动去导⼊。2、如何能够让⼀个东西⾃动帮我导⼊和配置这个jar包。Maven可以:由此,Maven诞⽣了!5.1 Maven(项⽬架构管理⼯具)我们⽬前就是⽤Maven来⽅便导⼊jar包的。Maven的核⼼思想:约定⼤于配置。什么意思呢?maven中有约束,你不要去违反它的约束。Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来。5.2 下载安装Maven官⽹:我下载的是Mavne3.6.3版本 下载后解压即可。5.3 配置环境变量在我们的系统环境变量中进⾏如下配置:M2_HOME :maven⽬录下的bin⽬录MAVEN_HOME:maven的⽬录在系统的path中配置:%MAVEN_HOME%bin最后在命令提⽰符中输⼊mvn -version测试Maven是否成功安装成功。保证必须确定配置完毕。5.4 阿⾥云镜像在apache-maven-3.6.3conf⽬录下的中配置阿⾥云镜像代码。镜像:mirrors作⽤:加速我们的下载。国内建议使⽤阿⾥云的镜像。代码:123456
使⽤Web应⽤如果没有以下两个⽂件夹就新建两个⽂件夹-Java和resources。 5.8 在idea中标记⽂件夹功能⽅法⼀: ⽅法⼆: 5.9 在IDEA中配置Tomcat 解决错误: 5.10 pom⽂件是Maven的核⼼配置⽂件。介绍(代码介绍):829363738394041
6.1 Servlet简介Servlet就是sun公司开发动态web的⼀门技术。Sun在这些API中提供⼀个接⼝叫做:Servlet,如果你下开发⼀个Servlet程序,只需要完成两个⼩步骤:1、编写⼀个类,实现Servlet接⼝。2、把开发好的Java类部署到web服务器中。我们把实现了Servlet接⼝的Java程序叫做,Servlet。6.2 HelloServletServlet接⼝Sun公司有两个默认的实现类:HttpServlet,GenericServlet1、构建⼀个普通的Maven项⽬,删掉⾥⾯的src⽬录,我们的学习就在这个项⽬⾥⾯建⽴Moudel:这个空的⼯程就是Maven主⼯程。2、关于Maven⽗⼦⼯程的理解:⽗项⽬中会有:123
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); }}5、编写Servlet的映射为什么需要映射?我们写的是Java程序,但是要通过浏览器访问,⽽浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的Servlet,还需给他⼀个浏览器能够访问的路径:
// tParameter(); 初始化参数// vletConfig(); Servlet配置// vletContext(); Servlet上下⽂ ServletContext context = vletContext(); String username = "张三"; // 数据 ribute("username",username); // 将⼀个数据保存在了ServletContext中,名字为:username,值为,username
n("hello"); }}1718public class GetServlet extends HttpServlet {
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletContext context = vletContext(); String username = (String) ribute("username");
tentType("text/html"); racterEncoding("utf-8"); ter().print("名字:"+username);
}
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}}配置映射路径: 17
String url = tParameter("url"); ter().print(url); }3、请求转发123456789 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = vletContext(); n("进⼊了ServletDemo04");// RequestDispatcher requestDispatcher = uestDispatcher("/gp"); // 转发的请求路径// d(rep,resp);// 调⽤forward实现请求转发 uestDispatcher("/gp").forward(req,resp); }概念图:上⾯的是请求转发过程。下⾯的是重定向过程。 4、读取项⽬⽂件Properties1、在Java⽬录下新建Properties2、在resources⽬录下新建Properties发现:都被打包到了同⼀个路径下,这个路径就是class路径。我们俗称classpath。思路:需要⼀个⽂件流。测试返回结果:通过类来找到⽂件,获取值。12username=root123123password=123456asdadaspublic class ServletDemo05 extends HelloServlet{
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { InputStream is = vletContext().getResourceAsStream("/WEB-INF/classes/com/lei/servlet/ties"); Properties prop = new Properties(); (is); String user = perty("username"); String pwd = perty("password");
ter().print(user+":"+pwd); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { }}访问测试结果ok。6.6 HttpServletResponseweb服务器接收到客户端的http请求,针对这个请求,分别创建⼀个代表请求的HttpServletRequest对象,代表响应的⼀个HttpServletResponse对象。如果要获取客户端请求过来的参数:找到HttpServletRequest如果要给客户端响应⼀些信息:HttpServletResponse1、简单分类 下载⽂件
(1)负责向浏览器发送数据的⽅法。(2)负责向浏览器发送响应头的⽅法。(3)响应的状态码。2、常见应⽤向浏览器输出消息。下载⽂件:1.要获取下载⽂件的路径。2.下载的⽂件名叫什么?3.设置想办法让浏览器能够⽀持下载我们需要的东西。4.获取下载⽂件的输⼊流。5.创建缓冲区。6.获取OutputStream。7.将FileOutputStream流写⼊到buffer缓冲区。8.使⽤OutputStream将缓冲区中的数据输出到客户端!⽂件下载案例82930public class FileServlet extends HttpServlet {
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 1.要获取下载⽂件的路径。 String realPath = "C:UsersleiIdeaProjectsjavaweb-03-mavenresponessrcmainresources张三.png"; n("下载⽂件的路径:"+realPath);// 2.下载的⽂件名叫什么? String fileName = ing(dexOf("") + 1);// 3.设置想办法让浏览器能够⽀持下载我们需要的东西。中⽂⽂件名,让去编码,否则有可能乱码 der("Content-Disposition","attachment;filename="+ (fileName,"utf-8"));// 4.获取下载⽂件的输⼊流。 FileInputStream in = new FileInputStream(realPath);// 5.创建缓冲区。 int len = 0; byte[] buffer = new byte[1024];// 6.获取OutputStream。 ServletOutputStream out = putStream();// 7.将FileOutputStream流写⼊到buffer缓冲区。使⽤OutputStream将缓冲区中的数据输出到客户端! while((len=(buffer))>0){ (buffer,0,len); } (); (); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}}3、验证码功能代码实例(通过映射,进⼊URL显⽰结果)829363738394647public class ImageServlet extends HttpServlet {
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 如何让浏览器五秒⾃动刷新⼀次 der("refresh","3");
// 在内存中创建图⽚ BufferedImage image = new BufferedImage(80,20,_INT_RGB);
// 得到图⽚ Graphics2D g = (Graphics2D)phics(); // 笔 // 设置图⽚的背景颜⾊ or(); ct(0,0,80,20); // 给图⽚写数据 or(); t(new Font(null,,20)); ring(makeNum(),0,20);
// 告诉浏览器这个请求⽤图⽚的⽅式打开 tentType("image/png"); // ⽹站存在缓存,不然浏览器缓存 eHeader("expires",1); der("Cache-Control","no-cache"); der("Pragma","no-cache");
// 把图⽚写给浏览器 boolean write = (image,"jpg", putStream()); } // ⽣产随机数 private String makeNum(){ Random random = new Random(); String num = t(99999999) + ""; StringBuffer sb = new StringBuffer(); for (int i = 0; i <(); i++) { ("0"); } String s = ng() + num; return num; }
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}}4、实现重定向B⼀个web资源收到A客户端请求后,他会通知A客户端去访问另外⼀个web资源C,这个过程叫做重定向。重定向⽅法: void sendRedirect(String var1) throws IOException;原理图: 重定向测试:12345 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
direct("/r/img"); }使⽤重定向的时候可能会404找不到资源问题:解决404: direct(textPath()+"/"); // 404解决⽅法,找不到路径5、说说重定向和转发的区别相同的⼀点:页⾯都会实现跳转。不同点:请求转发的时候,url不会产⽣变化。重定向的时候,url地址栏会发⽣变化。6.7 HttpServletRequestHttpServletRequest代表客户端的请求,⽤户通过Http协议访问服务器,Http请求中的所有信息会被封装到HttpServletRequest,通过HttpServletRequest的⽅法,可以获得客户端的所有信息。1、获取前端传递的参数和请求转发
⼀个返回字符串类型,⼀个返回数组类型。 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = ameter("username"); String password = ameter("password"); String[] hobbys = ameterValues("hobbys");
n("========================"); n(username); n(password); n(ng(hobbys)); n("========================");
// 通过请求转发 // /代表当前的web应⽤ uestDispatcher("/").forward(req,resp); }7、Cookie、Session7.1 Cookie、SessionCookie、Session(英⽂翻译为:⼩饼⼲、会话)会话:⽤户打开⼀个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话,有状态会话:⼀个同学来过教室,下次再来教室,我们会知道这个同学,曾经来过,称之为有状态的会话。列如:⼀个⽹站,怎么证明你来过?客户端 服务端1.服务端给客户端⼀个信件,客户端下次访问服务端带上信件就可以了:cookie2.服务器知道你来过了,下次你来的时候我来匹配你:session 7.2 保存会话的两种技术cookie:客户端技术(响应,请求)session:服务器技术,利⽤这个技术,可以保存⽤户的会话信息,我们可以把信息或数据放在session中。常见的:⽹站登录之后,你下次就不⽤再登录了,第⼆次访问直接就登上去了。可能会遇到的Java错误:7.3 Cookie
客户端可以使⽤多个请求,⽽这些请求都发往服务器,在服务器返回给客户端的时候会带上cookie。1、从请求中拿到cookie信息。2、服务器响应给客户端cookie。⽤到的⽅法:⼀个⽹站Cookie是否存在上线?⼀个Cookie只能保存⼀个信息。⼀个web站点可以给浏览器发送多个Cookie,但是最多只能放20个Cookie。Cookie⼤⼩有限制:4kb。300个Cookie,浏览器上限。删除Cookie:不设置有效期,关闭浏览器,⾃动失效。设置有效期为0。设置Cookie为0代码:12345678 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 创建⼀个Cookie,名字必须要和删除的名字⼀致 Cookie cookie = new Cookie("LastLoginTime",tTimeMillis()+""); // Cookie有效期为0 Age(0); kie(cookie); }7.4 SessionSession⽤法⼀:使⽤Session:客户端对服务器发送请求的时候,会有⼀个登记SessionID的,这个ID是唯⼀的,也是我们⽤户拿到的,⽽这个服务器中的Session可以存东西。
什么是Session?服务器会给每⼀个⽤户(浏览器)创建⼀个Session对象。⼀个Session独占⼀个浏览器,只要浏览器没有关闭,这个Session就存在。⽤户登录之后,整个⽹站它都可以访问。作⽤:保存⽤户的信息。列如:保存blbl的观看记录。Session和Cookie的区别:Cookie是把⽤户的数据写给⽤户的浏览器,浏览器保存(可以存多个)Session把⽤户的数据写道⽤户独占Session中,服务器保存(保存重要的信息,减少服务器资源的浪费)Session对象由服务器创建Session使⽤场景:保存⼀个登录⽤户的信息购物车信息在整个⽹站中经常会使⽤的数据,我们将它保存在Session中 1. 使⽤Session:1718192public class SessionDemo01 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 解决乱码问题 racterEncoding("GBK"); racterEncoding("GBK"); tentType("text/html;charset=utf-8");
// 得到session HttpSession session = sion();
// 给session中存东西 ribute("name",new Person("张三",18));
// 获取session的id String sessionid = ();
// 判断session是不是新创建的 if (()){ ter().write("session创建成功,ID为:"+sessionid); }else { ter().write("session已经存在服务器中,ID为:"+sessionid); } }}2. 得到Session:17public class SessionDemo02 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 解决乱码问题 racterEncoding("GBK"); racterEncoding("GBK"); tentType("text/html;charset=utf-8");
// 得到session HttpSession session = sion();
Person person = (Person)ribute("name");
n(ng());
}}3. 注销Session:123456789public class SessionDemo03 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = sion(); Attribute("name"); // ⼿动注销Session date(); }}4. 设置会话⾃动过期:在中配置Session⽤法⼆:web容器在启动的时候,它会为每个web程序都创建⼀个对应的ServletContext对象,它代表了当前的web应⽤。通过ServletContext对象获取信息。8、JSPJSP(全称JavaServer Pages)是由[Sun Microsystems]( Microsystems)公司主导创建的⼀种标准。8.1 什么是JSPJSP(全称JavaServer Pages):Java服务器端页⾯,也和servlet⼀样,⽤于动态web技术。最⼤的特点:写JSP就像在写HTML与HTML的区别:HTML只给⽤户提供静态的数据。JSP页⾯中可以嵌⼊Java代码,为⽤户提供动态数据。8.2 JSP原理
思路:JSP到底怎么执⾏的代码层⾯没有任何问题。服务器内部⼯作:tomcat中只有⼀个work⽬录。IDEA中使⽤Tomcat的会在IDEA的tomcat中⽣产⼀个work⽬录。JSP:我的电脑地址:C:Users⽤户Desktopjavaapache-tomcat-10.0.14workCatalinalocalhostROOTorgapachejsp会发现页⾯转变成了Java程序。JSP原理:浏览器向服务器发送请求,不管访问什么资源,其实都是在访问ServletJSP最终也会被转化成⼀个Java类。JSP本质上就是⼀个Servlet。源码⽅法:12345678// 初始化public void _jspInit() { }// 销毁 public void _jspDestroy() { }// JSPService public void _jspService(HttpServletRequest request, HttpServletResponse response)JSP原理图:在JSP页⾯中:只要是Java代码就会原封不动的输出。如果是HTML代码,就会被转化为:("rn");这样的格式,输出到前端。8.3 JSP基础语法任何语⾔都有⾃⼰的语法,Java中有,JSP作为Java技术的⼀种应⽤,它有⾃⼰的扩充的语法。Java所有语法都⽀持。EL表达式:${ }作⽤:1、获取数据2、执⾏运算3、获取web开发的常⽤对象1234567<%--使⽤EL表达式输出 ${}--%>
取出的值为:
${name1}
${name2}
${name3}
${name4}
${name5}
JSP表达式12345<%-- jsp表达式作⽤:⽤来将程序的输出,输出到客户端<%= 变量或表达式%>--%><%= new ()%>jsp脚本⽚段123456789<%--jsp脚本 ⽚段--%><% int sum = 0; for (int i = 1; i < 100; i++) { sum += i; } n("
Sum="+sum+"
");%>脚本⽚段的再实现jsp声明11<%! static { n("Loading Servlet!"); }private int globalVal = 0; public void lei(){ n("进⼊了⽅法lei!");
}%>JSP声明:会被编译到JSP⽣成的Java的类中!其他的,就会被⽣成到_jspServlet⽅法中!在JSP,嵌⼊Java代码即可!注释:JSP的注释不会在客户端显⽰。HTML的注释会在客户端显⽰。JSP指令拼接前端页⾯:
8.4 JSP九⼤内置对象PageContext 作⽤:存东西Request 作⽤:存东西ResponseSession 作⽤:存东西Application [ ServletContext ] 作⽤:存东西config [ ServletConfig ]outpageexception存信息的四⼤内置对象:ribute("name1","张三1号"):保存的数据只在⼀个页⾯中有效。ribute("name2","张三2号"):保存的数据只在⼀次请求中有效,请求转发会携带这个数据。ribute("name3","张三3号"):保存的数据只在⼀次会话中有效,从打开浏览器到关闭浏览器。 ribute("name4","张三4号"):保存的数据只在服务器中有效,从打开服务器到关闭服务器。8293031323334<%--内置对象--%><% ribute("name1","张三1号"); // 保存的数据只在⼀个页⾯中有效 ribute("name2","张三2号"); // 保存的数据只在⼀次请求中有效,请求转发会携带这个数据 ribute("name3","张三3号"); // 保存的数据只在⼀次会话中有效,从打开浏览器到关闭浏览器 ribute("name4","张三4号"); // 保存的数据只在服务器中有效,从打开服务器到关闭服务器%>
<%--脚本⽚段代码,会被原封不动的⽣成到.要求:这⾥⾯的代码必须保证Java语法的正确性--%><%// 通过pageContext来取出我们保存的值,我们通过寻找的⽅式 // 寻找⽅式的作⽤域:从底层到⾼层(作⽤域) String name1 = (String)tribute("name1"); String name2 = (String)tribute("name2"); String name3 = (String)tribute("name3"); String name4 = (String)tribute("name4"); String name5 = (String)tribute("name5"); // 不存在
%><%--使⽤EL表达式输出 ${}--%>
取出的值为:
${name1}
${name2}
${name3}
${name4}
<%= name5%>>
// 转发<% d("/");%>8.5 JSP标签、JSTL标签、EL表达式使⽤JSTL和EL需要导⼊的包:1112
<%--定义⼀个变量为score,它的值为85--%>
评论列表(0条)