资讯专栏INFORMATION COLUMN

JSP 学习记录

BearyChat / 1844人阅读

摘要:对象具有请求域,即完成客户端的请求之前,该对象一直有效。提交的数据量最多不超过。安全性较低但效率比方式高。适合提交数据量大,安全性高的用户信息。除非本次会话的所有页面都关闭后再重新访问某个或者,将会创建新的会话。

JSP 简介

全名为Java Server Pages,其根本是一个简化的Servlet设计,实现了在Java当中使用HTML标签。JSP是一种动态网页技术标准,也是JavaEE的标准,JSP与Servlet一样,是在服务器端执行的。
软件开发三大方向:

桌面应用程序

Web应用程序

嵌入式应用程序(手机的APP)

一、Web 开发知识补充 1.1 静态网页 VS 动态网页 1.1.1 静态网页

内容固定,不会更新

HTML,CSS

1.1.2 动态网页

通过程序动态显示,自动更新

所需技术:HTML,CSS,JS,XML,数据库库,一门高级语言(Java,C#,PHP)

主流的动态网页脚本技术:JSP/Asp.net/php

1.2 搭建 Java Web
JDK , Tomcat, IDE
推荐:JDK1.7,Tomcat7.0,MyEclipse10
1.2.1 Tomcat 目录结构
目录 说明
/bin 存放各种平台下用于启动和停止Tomcat的命令文件
/conf 存放Tomcat服务器的各种配置文件
/lib 存放Tomcat服务器所需的各种JAR文件
/logs 存放Tomcat的日志文件
/temp Tomcat运行时用于存放临时文件
/webapps 当发布Web应用时
/work Tomcat把由JSP生成的Servlet放于此目录下
1.2.2 WEB-INF 目录结构

WEB_INF:Java的Web应用的安全(客户端无法访问,只有服务端可以访问的)目录。

web.xml 项目部署文件

classes:放置*.class文件,放在WEB_INF目录下,IDEA需要手动建立

lib文件夹:放置需要的jar包,放在WEB_INF目录下,IDEA需要手动建立

1.3 如何修改Tomcat的端口?

修改 Tomcat的conf/server.xml的:

    

修改Port就能成功修改Tomcat的默认端口

1.4 常见动态网站开发技术对比

JSP:Java平台,安全性高,适合开发大型的,企业级的Web应用程序

Asp.net:.Net平台,简单易学,但是安全性以及跨平台性差

PHP:简单,高效,成本低开发周期短,特别适合中小型企业的Web应用开发(LAMP:Linux+Apache+MySQL+PHP)

JSP 适合分布式的,Hadoop
二、JSP 基础语法

页面元素组成:

静态内容

指令

注释

脚本

声明

表达式

2.1 JSP指令
指令 说明
page 通常位于JSP页面的顶端,同一个页面可以有多个page指令
include 将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句
taglib 使用标签库定义新的自定义标签,在JSP页面中启用定制行为
2.1.1 page指令

语法:

<%@ page 属性1="属性值" 属性2="属性值1,属性值2"... 属性n="属性值n" %>
属性 描述 默认值
language 指定JSP页面使用的脚本语言 Java
import 通过该属性来引用脚本语言中使用到的类文件
contentType 用来指定JSP页面所采用的编码方式 text/html,ISO-8859-1
2.2 JSP 注释

HTML 注释

  //客户端可见,审查元素时

JSP的注释:

<%-- JSP 的注释 -- %> //客户端不可见

JSP 脚本注释:客户端不可见

// 单行注释
/* 多行注释
*/ 
2.3 JSP 脚本

语法:

<% Java代码 %>
2.4 JSP 声明
在JSP中定义变量或者方法

语法:

<%! Java代码%>

例子:

<%!
    String s = "张三";    //声明了一个字符串
    int add(int x, int y){   //声明了一个函数,返回两个整数的求和
        return x+y
    }
%>
2.5 JSP的表达式
JSP中执行的表达式
<%= 表达式%>  // 注意表达式不以分号结束
三、JSP 内置对象 3.1 内置对象简介

JSP内置对象是web容器创建的一组对象,不用new关键字就可以使用的内置对象

<%
    int[] value = {60,70,80}
    for(int i:value){
        out.println(i)
    }
%>

JSP内置对象:

out

request

response

session

application

Page/pageContext/exception/config

3.2 out

JspWriter类的实例,向客户端(浏览器)输出内容常用的对象
常用方法如下:

void println()向客户端打印字符串

void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常

void clearBuffer() 清除缓冲区的内容,如果在flush之后调用不会抛出异常

void flush() 将缓冲区内容输出到客户端

int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0

int getRemaining() 返回缓冲区还剩余多少可用

boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常

void close() 关闭输出流

3.3 request/response

客户端的请求信息被封装在Request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。

3.3.1 补充:get 和 post区别
表单:

表单提交方式:get和post

get:以明文的方式通过URL提交数据数据在URL中可以看到。提交的数据量最多不超过2KB安全性较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索、查询等功能。
例如结果如下:

 http://localhost:8080/ServletDemo/dologin.jsp?username=12&password=12

post:将用户提交的信息封装在HTML HEADER内。适合提交数据量大,安全性高的用户信息。比如:注册,修改,上传等功能

3.3.2 常用方法
1. String getParameter(String name) 返回name指定参数的参数值
2. String[] getParameterValues(String name)返回包含参数name的所有值的数据
    

request 内置对象

<% request.setCharacterEncoding("utf-8"); %> 用户名:<%=request.getParameter("username")%>
爱好:<% String[] favorites = request.getParameterValues("favorite"); for (int i = 0; i < favorites.length; i++) { out.println(favorites[i]+"  "); } %>
request.setCharacterEncoding("utf-8”);
避免中文在客户端显示乱码

通过URL提交表单,如果是中文可能还会乱码

解决方法:配置Tomcat
tomcat的conf目录下的 server.xml

需要重启Tomcat生效

3. void setAttribute(String, Object) 存储此请求中的属性
4. object getAttribute(String name) 返回指定属性的属性值

如我们在解析request时候,可以设置默认项(密码):

request.setAttribute("password", "123456");

然后读取这个值

密码:<%=request.getAttribute("password")%>
5. String getContentType() 得到请求体的MIME类型
6. String getProtocol() 返回请求用的协议类型及版本号
7. String getServerName() 返回接收请求的服务器主机名
3.3.3 其他方法:
1. int getServerPort() 返回服务器接收此请求所用的端口号
2. String getCharaterEncoding() 返回字符编码方式
3. void setCharacterEncoding() 设置请求的字符编码方式
4. int getContentLength() 返回请求体的长度(字节数)
5. String getRemoteAddr() 返回请求的客户端IP地址
6. String getRealPath(String path) 返回一虚拟路径的真是路径
3.4 response 对象

包含了响应客户端请求的有关信息,但是在JSP中很少使用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面的response对象只能对这次访问有效,其他页面的response对象对当前页面无效

3.4.1 常用方法:
1. String getCharacterEncoding() 返回响应用的是何种字符编码
2. void setContentType(String type)设置响应的MIME类型
3. PrintWriter getWriter() 返回可以向客户端输出字符的一个对象(注意比较PrintWriter与内置out对象的区别)

区别:

out和response.getWriter的类不一样,一个是JspWriter,另一个是java.io.PrintWriter。

执行原理不同:JspWriter相当于一个带缓存功能的printWriter,它不是直接将数据输出到页面,而是将数据刷新到response的缓冲区后再输出,response.getWriter直接输出数据(response.print()),所以(out.print)只能在其后输出。 (如果想要out对象强制在前输出,可以out之后使用flush()方法)

out为jsp的内置对象,刷新jsp页面,自动初始化获得out对象,所以使用out对象是需要刷新页面的,而response.getWriter()响应信息通过out对象输出到网页上,当响应结束时它自动被关闭,与jsp页面无关,无需刷新页面。「形象的比喻:当我们调用response.getWriter()这个对象同时获得了网页的画笔,这时你就可以通过这个画笔在网页上画任何你想要显示的东西。」

out的print()方法和println()方法在缓冲区溢出并且没有自动刷新时候会产生ioexception,而response.getWrite()方法的print和println中都是抑制ioexception异常的,不会有ioexception 。

4. sendRedirect(java.lang.String location) 重定向客户端的请求

请求转发与请求重定向的区别:

请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变

请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变

例子:办理护照
       重定向:你先去了A局,A局的人说:“这事不归我们管,去B局”,然后你从A退了出来,乘车去了B局
       转发:你去了A局,A局看了以后,知道这个事情应该B局管,没有退出来,让你坐了一会,自己倒了后面办公室联系了B的人,让他们办好后,送了过来。

3.5 session

表示客户端与服务器的一次会话

Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过这段时间,也就是用户浏览这个网站所花费的时间

从上述定义可以看到,session实际上是一个特定的时间概念

3.5.1 什么是Session?

在服务器的内存中保存着不同用户的session,每一个用户一个session。

3.5.2 session 对象

JSP内置对象

在第一个JSP页面被装载时自动创建,完成会话期管理

从一个客户打开浏览器并连接到服务器开始,到客户端关闭浏览器离开这个服务器结束,被称为一个会话

当客户访问一个服务器时,可能在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象

session对象是HTTPSession类的实例

3.5.3 常用方法:
1. long getCreationTime():返回Session创建时间
2. public String getID(): 返回session创建时JSP引擎为它设的唯一ID号
3. public Object setAttribute(String name, Object value):使用指定名称对象绑定此会话
4. public Object getAttribute(String name):返回此会话中的指定名称绑定在一起时的对象
如果没有对象绑定在该名称,返回Null
5. String[] getValueNames():返回一个包含此session中所有可用属性的数组
6. int getMaxInactiveInterval(): 返回两次请求间隔多长时间此session被取消(单位秒)
3.5.4 Session 生存周期

创建

活动

销毁

3.5.4.1 创建:

当客户端第一次访问某个JSP或者servlet时候,服务器会为当前会话创建一个sessionId,每次客户端向服务器发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验

3.5.4.2 活动:

某次会话当中通过超链接打开的新页面属于同一次会话。

只要当前会话页面没有全部关闭,重新打开的新浏览器窗口访问同一个项目资源时属于同一次会话。

除非本次会话的所有页面都关闭后再重新访问某个JSP或者Servlet,将会创建新的会话。

注意事项:注意原有会话还存在,只是这个旧的sessionId仍存在服务端,只是再也没有客户端会携带它然后交于服务端校验
3.5.4.3 销毁:

session的销毁方式只有三种:

调用session.invalidate()方法

session过期(超时)

服务器重启

设置超时时间两种方式:

session.setMaxInactiveInterval(时间)时间是秒

web.xml配置



    10 //分钟

3.6 application

实现了用户间数据的共享,可存放全局变量

开始于服务器的启动,终止于服务器的关闭

在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作

在任何地方对application对象属性的操作,都将影响到其他用户对此的访问

服务器的启动和关闭决定了application对象的声明

application对象是ServletContext类的实例

常用方法:

public void serAttribute(String name, Object value)使用指定名称将对象绑定到此会话

public Object getArrtibute(String name) 返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在此名称下,则返回null

Enumeration getAttributeNames()返回所有可用属性名的枚举

String getServerInfo()返回JSP(Servlet)引擎名及版本号

3.7 page / pageContext / exception / config 3.7.1 page 对象

指当前JSP页面本身,有点像类中的this指针,它是Java.long.Object类的实例

常用方法(Object类的方法):

class getClass() 返回此Object 的类

int hashCode() 返回此Object的Hash码

boolean equals(Object obj) 判断此Object是否与指定的Object对象相等

void copy(Object obj)把此Object拷贝到指定的Object对象中

Object clone() 克隆此Object对象

String toString 把Object对象转换成String类的对象

void notify() 唤醒一个等待的线程

void notifyall() 唤醒所有等待的线程

void wait(int timeout)使一个线程处于等待直到timeout结束或者被唤醒

void wait() 使一个线程处于等待直到被唤醒

3.7.2 pageContext对象

提供了对JSP页面内所有的对象及名字空间的访问

可以访问到本页所在的session,也可以取本页面所在的application的某一个属性值

相当于页面中所有功能的集大成者

本类名也叫pageContext

常用方法:

JspWriter getOut() 返回当前客户端响应被使用的JspWriter流(out)

HttpSession getSession() 返回当前页中的HttpSession对象(session)

Object getPage() 返回当前页的Object对象(page)

ServletRequest getRequest() 返回当前页的ServletRequest对象(request)

ServletResponse getResponse() 返回当前页的ServletResponse对象(response)

void setAttribute(String name, Object attribute)设置属性及属性值

Object getAttribute(String name, int scope)在指定范围内取属性的值

int getAttributeScope(String name) 返回某个属性的作用范围

void forward(String relativeUrlPath) 使当前页面重导到另一页面

void include(String relativeUrlPath)在当前位置包含另一文件

3.7.3 Exception对象

异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设置为true,否则无法编译。它实际上是java.lang.Throwable的对象
常用方法:

String getMessage() 返回描述异常的消息

String toString() 返回关于异常的简短描述信息

void printStackTrace() 显示异常及其栈轨迹

Throwable FillInStackTrace() 重写异常的执行栈轨迹

需要处理异常的页面,页面头要加上errorPage

<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="exception.jsp" %>

Exception页面要在page中填写isErrorPage

<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
3.7.4 Config 对象

在Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
常用方法如下:

ServletContext getServletContext() 返回含有服务器相关信息的 ServletContext 对象

String getInitParameter(String name)返回初始化参数的值

Enumeration getInitParameterNames() 返回Servlet初始化所需所有参数的枚举

四、JavaBean 4.1 JavaBean 简介

就是符合某种特定的规范的Java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。

4.2 JavaBean的设计原则

公有类

无参的公有构造方法

属性私有

getter和setter方法

Javabean 设计原则举例

//设计学生类
public class Students // 公有类
{
    private String name; //属性私有
    private int age; //属性私有
    public Students() //无参的公有构造方法
    {}
    // getter 和 setter 方法
    public void setName(String name){this.name =name;}
    public String getName(){return this.name}
    public void setAge(int age){this.age = age;}
    public int getAge(){return this.age;}
}
什么是Jsp动作

JSP动作元素(acion elements)为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选内容、与开始标签匹配的结束标签。

第一类:存取与JavaBean有关「重要」

第二类:JSP1.2开始有的基本元素,包含6个动作元素

第三类:JSP2.0新增加的元素,主要与JSP Document有关,包含6个元素

第四类:JSP2.0新增加的动作元素,主要是用来动态生成XML元素标签的值,包括3个动作

第五类:JSP2.0 新增加的动作元素,主要使用在Tag File中,有2个元素

4.3 如何在JSP页面中使用Javabeans? 4.3.1 像使用普通类一样创建Javabeans实例
  
    <%
        Users user = new Users();
        user.setUsername("admin");//设置用户名
        user.setPassword("123456");  //设置密码
    %>
    

使用普通方式创建javabean实例


用户名:<%=user.getUsername()%>
密码:<%=user.getPassword()%>
4.3.2 JSP页面中通常使用动作标签使用javabean
useBeans动作  setProperty动作 getProperty动作


作用:在jsp页面中实例化或者在指定范围内使用javabean:

    
    

使用useBean动作创建javabean实例


用户名:<%=myUsers.getUsername()%>
密码:<%=myUsers.getPassword()%>

作用:给已经实例化的JavaBean对象的属性复制,一共有四种形式
(与表单关联)
(与表单关联)
(手工设置)
(与request参数关联)

    
    

setProperty动作元素


<%-- --%> <%-- --%> <%-- --%> 用户名:<%=myUsers.getUsername()%>
密码:<%=myUsers.getPassword()%>
第四种:form提交的action中设置了mypass参数  

作用:获取指定JavaBean对象的属性值


用户名:<%=myUsers.getUsername()%>
密码:<%=myUsers.getPassword()%>
用户名:
密码:
JavaBean的四个作用域范围

说明:使用useBeans 的scope属性可以用来指定JavaBean的作用范围

page //当前页面有效

request //可以通过HttpRequest.getAttribute()方法获取JavaBean对象

session //可以通过HttpSession.getAttribute()方法获取JavaBean对象

application // 可以通过application.getAttribute() 方法获取JavaBean对象

作用域 描述
存储在application对象中的属性 可以被同一个WEB应用程序中的所有Servlet和JSP页面访问
存储在session对象中的属性 可以被属于同一个会话(浏览器打开直到关闭称为一次会话,且在此期间会话不失效)的所有Servlet和JSP页面访问
存储在request对象中的属性 可以被属于同一个请求的所有Servlet和JSP页面访问(在有转发的情况下可以跨页面获取属性值),例如使用PageContext.forward和PageContext.include方法连接起来的多个Servlet和JSP页面
存储在pageContext对象中的属性 仅可以被当前JSP页面的当前响应过程中调用的各个组件访问,例如,正在响应当前请求的JSP页面和它调用的各个自定义标签类
    

JavaBean四个作用域范围


用户名:
密码:
<%-- 用户名:<%=((Users)application.getAttribute("myUsers")).getUsername()%>>
密码:<%=((Users)application.getAttribute("myUsers")).getPassword()%>>
--%> <%-- 用户名:<%=((Users)application.getAttribute("myUsers")).getUsername()%>>
密码:<%=((Users)application.getAttribute("myUsers")).getPassword()%>>
--%> 用户名:<%=((Users)request.getAttribute("myUsers")).getUsername()%>>
密码:<%=((Users)request.getAttribute("myUsers")).getPassword()%>>
request 通过请求转发还可以获取到,但是page在其他页面无法获取到
Model1 简介

Model 1模型出现前,整个Web应用的情况:几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接作出响应。
弊端:在界面层充斥着大量的业务逻辑的代码和数据访问层的代码,Web程序的可扩展性可维护性非常差。

JavaBean的出现可以使JSP页面中使用JavaBean封装的数据或者调用JavaBean的业务逻辑代码,这样大大提升了程序的可维护性

Model1简单来说就是JSP+JavaBean的开发模式
五、JSP 状态管理 5.1 HTTP协议无状态性

无状态:浏览器发送请求给服务器的时候,服务器响应客户端请求。但是当同一个浏览器再次发送请求给服务器的时候,服务器并不知道它就是刚才那个服务器。

简单地说,就是服务器不会记录你,就是无状态协议
5.2 保存用户状态的两大机制(session&cookie) cookie

中文名:“小甜饼”
Web服务器保存在客户端的一系列文本信息
典型应用一:判定注册用户是否已经登录网址 (如十天内免登录…)
典型应用二:“购物车的处理”

Cookie的作用

对特定对象的追踪

保存用户网页浏览记录与习惯

简化登录

安全风险:容易泄漏用户信息
JSP中创建与使用Cookies

创建Cookie对象:

Cookie newCookie = new Cookie(String key, Object value);

写入Cookie对象:

response.addCookie(newCookie)

读取Cookie对象:

Cookie[] cookies = request.getCookies();

Cookie常用方法:

方法名称 说明
void setMaxAge(int expiry) 设置cookie的有效期,以秒为单位
void setValue(String value) 在cookie 创建后,对cookie进行赋值
String getName() 获取cookie名称
String getValue() 获取cookie的值
int getMaxAge() 获取cookie的有效时间,以秒为单位
session 和cookie对比
session cookie
服务器端(内存)保存用户信息 客户端(文本文件)保存用户信息
session中保存的是Object类型 cookie 保存的是String类型
随会话的结束而将其存储的数据销毁 cookie可以长期保存在客户端
保存重要的信息 保存不重要的用户信息
安全性 :session 比 cookie要高
六、指令与动作 6.1 include指令

语法:
<%@ include file=“URL”%>

6.2 include动作

语法:

常用page和flush:
page:要包含的页面
flush: 被包含的页面是否从缓冲区读取

6.3 include指令和include动作的区别
include 指令 jsp:include 动作
语法格式 <%@ include file= “…” %>
发生作用的时间 页面转换期间 请求期间
包含的内容 文件的实际内容(代码) 页面的输出(结果)
转换成的Servlet 主页面和包含页面转换成一个Servlet 主页面和包含页面转换为独立的Servlet
编译时间 较慢——资源必须被解析 较快
执行时间 稍快 较慢——每次资源必须被解析
6.4 动作

语法:

等同:
request.getRequestDispatcher(“/url”).forward(request, response);

6.5

语法:

常常作为的子标签
案例:

  
    
     //修改密码
七、知识点补充 7.1 JSP对象 怎样获得
JSP 对象 怎么获得
out resp.getWriter
request servlet 方法的 req参数
response servlet 方法的 resp参数
session req.getSession() 函数
application getServletContext() 函数
exception Throwable
page this
pageContext PageContext
config getServletConfig()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76615.html

相关文章

  • JavaWeb从0开始学(一)-----第一个Web应用程序与JSP工作原理

    摘要:当后继请求相同的页面时,容器加载之前生成的类,并且通知去执行已经存在的字节码,从而省去了转换的过程,这也是第一次执行页面时间较长的原因。 以往学习的时候大多是看完书或者看完视频,动手实践一下就OK了。然而过了一段时间我发现东西都忘差不多了,需要复习才能重新掌握。现在开始学习JavaWeb了,我将在这里记录自己的学习的一点一滴,不仅便于自己以后回顾知识点,也希望能对JavaWeb初学者有...

    CloudDeveloper 评论0 收藏0
  • 深入分析JavaWeb Item1 -- JavaWeb开发入门

    摘要:中主要是使用语言。将的动态功能和标准的安全性引入大型网络应用的开发集成部署和管理之中。提供了一个图形界面的管理工具,称为信息服务管理器,可用于监视配置和控制服务。 一、基本概念 1.1、WEB开发的相关知识   WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。  Internet上供外界访问的Web资源分为: 静态web资源(如html 页面...

    tinna 评论0 收藏0
  • Thymeleaf学习记录(1)--启动模板及建立Demo

    摘要:是什么是适用于和独立环境的现代服务器端模板引擎。建立打开,选择下一步下一步选中然后点击完成,文件结构如下添加,再下右键,添加内容如下测试点击右键,启动项目,输出如下启动成功打开浏览器输入显示如下成功。      Thymeleaf是什么? Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。相比于JSP,Thymeleaf更简洁,渲染性能更好,维护性更好,它可以XML/...

    GeekGhc 评论0 收藏0
  • 全栈通用分页查询

    摘要:前言给大家讲解全栈通用分页查询码字不易,点个关注转载请说明开发工具思维导图目录一所需要的包二后端数据库帮助类通用查询分页父类书籍层类分页工具类三前端文件助手类前端界面四一所需要的包二后端数据库 前言:给大家讲解全栈通用分页查询 码字不易,点个关注 转载请说明! 开发工具:eclipse 思维...

    Ashin 评论0 收藏0
  • JavaWeb从0开始学(二)-----JSP基本语法与编译指令

    摘要:下面我们再打开对应的文件,我们会看到如下部分内容静态测试调用我是文件,我被文件调用了我们发现,在该包含文件被引入处那条语句被执行了。 在上一节中我们学习了如何搭建一个简单的Web应用,并且已经知晓了一个JSP页面主要由静态的HTML内容和动态的Java脚本共同组成。JSP的基本语法共有JSP注释、JSP声明、输出JSP表达式与JSP程序片段四种,用来控制动态向页面输出内容的。现在我们就...

    fancyLuo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<