JSP基础
2021-01-24 01:29
阅读:617
YPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
标签:print 刷新 html 定位 实例 初始 ref option show
一、什么是JSP
JSP是由Sun公司倡导、许多公司参与而建立的动态网页技术标准。它在HTML代码中嵌入java代码片段(Scriptlet)和JSP标签,构成了JSP网页。在接收到用户请求时,服务器会处理java代码片段,然后生成处理结果的HTML页面返回给客户端,客户端的浏览器将呈现最终页面效果。
二、JSP技术特征
1、跨平台
2、业务代码分离
3、组件重用(javabean)
4、继承 Java Servlet功能
5、预编译
2、业务代码分离
3、组件重用(javabean)
4、继承 Java Servlet功能
5、预编译
三、page指令
1、language属性
用于设置JSP页面使用的语言,目前只支持java语言,以后可能会支持其他语言,该属性默认值是java
2、extends属性
用于设置 JSP页面继承的 Java类,所有 JSP页面在执行之前都会被服务器解析成 Servlet,而 Servlet是由 Java类定义的,所以 JSP和 Servlet都可以继承指定的父类。该属性并不常用,而且有可能影响服务器的性能优化。
3、import 属性
用于设置 JSP导入的类包。JSP 页面可以嵌入 java代码片段,这些java代码在调用 API时需要导入相应的类包。
4、pageEncoding属性
用于定义 JSP页面的编码格式,也就是指的文件编码。 JSP页面中的所有代码都使用该属性指的的字符集,如果该数据值为ISO-8859-1,那么这个jsp页面就不支持中文字符。通常设置编码格式为 GBK 或 UTF-8
5、contentType属性
用于设置 JSP 页面的 MIME类型和字符编码,浏览去会据此显示网页内容。
pageEncoding="UTF-8"%>
这是我保存的jsp页面
12345678910111213
四、include指令
该指令用于文件包含。该指令可以在 JSP页面中包含另一个文件的内容,但是它仅仅支持静态包含,也就是说被包含文件中的所有内容都被原样包含到该 JSP 页面中;如果被包含文件中有代码,将不被执行。被包含的文件可以是一段java代码、HTML代码或者是另一个 jsp页面。
一个index.jsp
pageEncoding="UTF-8"%>
当前的日期是:
>
1234567891011121314
一个date.jsp
pageEncoding="UTF-8"%>
Date now=new Date();
String dateStr;
dateStr=String.format("%tY年%tm月%td日", now, now,now);
%>
dateStr=String.format("%tY年%tm月%td日", now, now,now);
%>
1234567891011
五、taglib指令
该指令用于加载用户自定义标签,使用该指令加载后的标签可以直接在 JSP 页面中使用。其语法格式为:
六、java代码块
实现九九乘法表
pageEncoding="UTF-8"%>
long startTime=System.nanoTime();
for(int i=1;i
for(int j=1;j
String str=j+"x"+i+"="+(i*j);
out.print(str+" ");
}
out.print("
");
}
long endTime=System.nanoTime()-startTime;
/* out.println(endTime); */
%>
生成九九乘法表,用时毫秒
1234567891011121314151617181920212223242526
long endTime=System.nanoTime()-startTime;
/* out.println(endTime); */
%>
生成九九乘法表,用时毫秒
1234567891011121314151617181920212223242526
七、JSP表达式
JSP表达式可以直接把JAVA的表达式结果输出到JSP页面中。表达式的最终运算结果将被转换为字符串类型,因为在网页中显示的文字都是字符串,JSP表达式的语法格式为:(比如圆周率)
1
具体实例代码:
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
pageEncoding="UTF-8"%>
--%>
public String add(int a,int b){
return ""+(a+b);
}
public String add(int a,int b){
return ""+(a+b);
}
%>
圆周率是:
123456789101112131415161718192021222324252627
八、获取请求参数值
语法:String request.getParameter(String parameter)
String request.getParameter(String parameter)1
实例演示:从show.jsp获取index.jsp页面中的id值
index.jsp
index.jsp
pageEncoding="UTF-8"%>
获取id的值
show.jsp
pageEncoding="UTF-8"%>
id的值为:
name的值为:
1234567891011121314
运行结果为:
id的值为:001
name的值为:null
id的值为:001
name的值为:null
九、获取Form表单信息
语法
String[] request.getParameterValues(String parameter)
具体实例演示
index.jsp
index.jsp
pageEncoding="UTF-8"%>
请输入用户姓名:
选择性别:男
女
密码提示问题
请输入问题答案:
请选择个人爱好:
唱歌跳舞
户外登山
网上冲浪
show.jsp
pageEncoding="UTF-8"%>
用户名:
性别:
密码提示问题:
问题答案:
个人爱好:
String[] like=request.getParameterValues("like");
for(int i=0;i
%>
}
%>
运行结果为:
点击提交按钮之后:
点击提交按钮之后:
十、获取请求客户端信息
request对象获取请求客户端信息
方法
返回值
说明
getHeader(String name)
String
返回指定名称的Http头信息
String
返回指定名称的Http头信息
getMethod()
String
获取客户端服务器发送请求的方法
getContextPath()
String
返回请求路径
getProtocol()
String
返回请求使用的协议
getRemoteAddr()
String
返回客户端地址
getRemoteHost()
String
返回客户端主机名称
getRemotePort()
int
返回客户端发出请求的端口号
getServletPath()
String
返回接受客户提交信息的页面
getRequestURI()
String
返回部分客户端请求的地址,不包括请求的参数
getRequestURL()
StringBuffer
返回客户端请求地址
实例演示:
创建客户端client.jsp
pageEncoding="UTF-8"%>
运行结果为:
客户端使用协议:HTTP/1.1
客户端发送请求方法:GET
客户端请求路径:/MyWebTest
客户端IP地址:0:0:0:0:0:0:0:1
客户端主机名称:0:0:0:0:0:0:0:1
客户端端口号:4999
接收客户信息的页面:/index.jsp
客户端使用协议:HTTP/1.1
客户端发送请求方法:GET
客户端请求路径:/MyWebTest
客户端IP地址:0:0:0:0:0:0:0:1
客户端主机名称:0:0:0:0:0:0:0:1
客户端端口号:4999
接收客户信息的页面:/index.jsp
十一、在作用域中管理属性
request对象在作用域中管理属性
语法
语法
Object request.setAttribute(String name,Object value) 1
比如:
request.setAttribute(“date”,new Date());//添加一个属性
request.setAttribute(“date”,new Date());//添加一个属性
演示代码:
pageEncoding="UTF-8"%>
运行结果为:
获取date属性:Sun May 20 10:10:39 CST 2018
删除之后获取date属性:null
获取date属性:Sun May 20 10:10:39 CST 2018
删除之后获取date属性:null
十二、cookie管理
cookie是小段的文本信息,通过使用cookie可以标识用户身份、记录用户名及密码、跟踪重复用户。cookie在服务器生成并发送给浏览器,浏览器将cookie的key/value保存到某个指定的目录中,服务器的名称与值可以有服务器端定义。
通过cookie的getCookies()方法可以获取到所有的cookie对象集合,然后通过cookie对象的getName()方法获取到指定名称的cookie,再通过getValue()方法即可获取到cookie对象的值。另外,将一个cookie对象发送到客户端使用了response对象的addCookie()方法。
通过cookie的getCookies()方法可以获取到所有的cookie对象集合,然后通过cookie对象的getName()方法获取到指定名称的cookie,再通过getValue()方法即可获取到cookie对象的值。另外,将一个cookie对象发送到客户端使用了response对象的addCookie()方法。
实例演示:
在index.jsp中读取cookie,在show.jsp中添加cookie
index.jsp
在index.jsp中读取cookie,在show.jsp中添加cookie
index.jsp
pageEncoding="UTF-8"%>
String welcome="第一次访问";
String[] info=new String[]{"","",""};
Cookie[] cook=request.getCookies();
if(cook!=null){
for(int i=0;i
if(cook[i].getName().endsWith("abcCookInfo")){
info=cook[i].getValue().split("#");
welcome="欢迎回来!";
}
}
}
%>
姓名:
生日:
邮箱:
show.jsp
pageEncoding="UTF-8"%>
String name=request.getParameter("name");
String birthday=request.getParameter("birthday");
String email=request.getParameter("email");
/* 将这三个值写到cookie里,也即是添加cookie*/
Cookie myCookie=new Cookie("abcCookInfo",name+"#"+birthday+"#"+email);
response.addCookie(myCookie);
%>
姓名:
生日:
邮箱:
返回
Cookie myCookie=new Cookie("abcCookInfo",name+"#"+birthday+"#"+email);
response.addCookie(myCookie);
%>
运行结果为:
十三、response对象
response对象常用方法
方法
返回值
说明
addHeader(String name,String value)
void
添加HTTP文件头,如果同名的头存在,则覆盖
void
添加HTTP文件头,如果同名的头存在,则覆盖
setHeader(String name,String value)
void
设定指定名称的文件并头的值,如果存在则覆盖
addCookie(Cookie cookie)
void
向客户端添加一个cookie对象
sendError(int sc,String msg)
void
向客户端发送错误信息。例如:404网页找不到
sendRedirect(String location)
void
发送请求到另一个指定位置
getOutputStream()
ServletOutputStream
获取客户端输出流对象
setBufferSize(int size)
void
设置缓冲区大小
1、重定向
重定向是通过使用sendRedrect()方法,将响应发送到另一个指定的位置进行处理
比如:
response.sendRedirect(“www.baidu.com”);
2、处理HTTP文件头
setHeader()方法通过两个参数–头名称与参数值的方法来设置HTTP头文件。
比如:
response.sendRedirect(“www.baidu.com”);
2、处理HTTP文件头
setHeader()方法通过两个参数–头名称与参数值的方法来设置HTTP头文件。
比如:
设置网页每5秒自动刷新一次
response.setHeader("refresh","5");
设置2秒钟后自动跳转至指定的页面
response.setHeader("refresh","2;URL=welcom.jsp");1234
response.setHeader("refresh","5");
设置2秒钟后自动跳转至指定的页面
response.setHeader("refresh","2;URL=welcom.jsp");1234
十四、session对象
session是与请求有关的会话对象,是java.servlet.http.HttpSession对象,用于保存和存储页面的请求信息。
session对象的setAttribute()方法可以实现将信息保存在session范围内,而通过getAttribute()方法可以获取保存在session范围内的信息。
示例:
session对象的setAttribute()方法可以实现将信息保存在session范围内,而通过getAttribute()方法可以获取保存在session范围内的信息。
示例:
String sessionMessage="session练习";
session.setAttribute("message",sessionMessage);
session.setAttribute("message",sessionMessage);
String message=(String)session.getAttribute("message");
out.print("保存在session范围内的值为:"+message);123456
移除指定的绑定对象
removeAttribute(String key)
销毁session
session.invalidate();
十五、application对象
application对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象的声明周期更长,类似于“全局变量”。
application对象的常用方法
application对象的常用方法
方法
返回值
说明
getAttribute(String name)
Object
通过关键字返回保存在application对象中的信息
Object
通过关键字返回保存在application对象中的信息
getAttributeNames()
Enumeration
获取所有application对象使用的属性名
setAttribute(String key,Object obj)
void
通过指定的名称将一个对象保存在application对象中
getMajorVersion()
int
获取服务器支持的Servlet版本号
getServerInfo()
String
返回JSP引擎的相关信息
removeAttribute(String name)
void
删除application对象中指定名称的属性
getRealPath()
String
返回虚拟路径的真实路径
getInitParameter(String name)
String
获取指定name的application对象属性的初始值
程序演示:
在web.xml中配置
在index.jsp中获取application的初始值
pageEncoding="UTF-8"%>
String url=application.getInitParameter("url");
String name=application.getInitParameter("name");
String password=application.getInitParameter("password");
out.println("URL:"+url);
out.println("Name:"+name);
out.println("P
out.println("Name:"+name);
out.println("P
上一篇:写css时犯的一个错误
下一篇:JSTL标签用法 详解
评论
亲,登录后才可以留言!