javaweb学习--jsp
程序员文章站
2023-01-03 17:13:01
阅读电子书《Java Web从入门到精通》密码:461c,学习JavaWeb基础知识。由于本人已有html基础,所以直接略过前面部分,进入jsp学习 jsp页面添加库引用,引入项目文件 页面示例 application对象 request对象,jsp:forward标签 跳转后页面 config对象 ......
阅读电子书《java web从入门到精通》密码:461c,学习javaweb基础知识。由于本人已有html基础,所以直接略过前面部分,进入jsp学习
jsp页面添加库引用,引入项目文件
引用包<%@ page import="java.util.date" %>
引用文件<%@ include file="top.jsp" %><%-- 不带编译功能,原页面是什么就是什么 --%>
引用文件<jsp:include page="top.jsp" /><%-- 子页面单独编译 --%>
页面示例
<%@ page language="java" contenttype="text/html; charset=utf-8"
pageencoding="utf-8"%>
<%@ page import="java.util.date" %>
<%@ page import="java.text.simpledateformat" %>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>insert title here</title>
</head>
<body style="margin:0;">
<%@ include file="top.jsp" %><%-- 不带编译功能,原页面是什么就是什么 --%>
<jsp:include page="top.jsp" /><%-- 子页面单独编译 --%>
<center>哈哈</center>
<%
date date = new date();
simpledateformat df = new simpledateformat("yyyy-mm-dd hh:mm:ss");
string today = df.format(date);
%>
当前时间:<%= today %>
<br /><button onclick="location.href='process.jsp';">登录</button>
<%@ include file="copyright.jsp" %>
<jsp:include page="copyright.jsp" />
</body>
</html>
application对象
<%@ page language="java" contenttype="text/html; charset=utf-8"
pageencoding="utf-8"%>
<%@ page import="java.util.*"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>application</title>
</head>
<body>
<%=application.getinitparameter("url")%>
<br />
<pre><%-- 显现println的换行效果 --%>
<%
enumeration enema = application.getinitparameternames(); //获取全部初始化参数
while (enema.hasmoreelements()) {
string name = (string) enema.nextelement(); //获取参数名
string value = application.getinitparameter(name);
out.println(value);
}
%>
</pre>
</body>
</html>
request对象,jsp:forward标签
<body>
<%
try{
int money = 100;
int number = 0;
request.setattribute("result", money/number);
}catch(exception e){
request.setattribute("result", "错误");
}
%>
<jsp:forward page="attribute_deal.jsp" />
</body>
跳转后页面
<body>
<% string message = request.getattribute("result").tostring(); %>
<%= message %>
</body>
config对象(实际开发中不常用)
<body>
<%
config.getservletcontext(); //获取servlet上下文
config.getservletname(); //获取servlet服务器名
config.getinitparameter(); //获取服务器所有初始参数名称,返回值为java.util.enumeration对象
config.getinitparameternames(); //获取服务器中name参数的初始值
%>
</body>
exception对象(实际不常用)
<%@ page language="java" contenttype="text/html; charset=utf-8"
pageencoding="utf-8" errorpage="exception_error.jsp"%><!-- 添加errorpage-->
<body>
<center>exception.getmessage(); 返回exception对象的异常信息字符串</center>
<br />
<center>exception.getlocalizedmessage(); 返回本地化的异常错误</center>
<br />
<center>exception.fillinstacktrace(); 重写异常错误的栈执行轨迹</center>
<br />
<%
request.setattribute("price", "12.5 元");
float price = float.parsefloat(request.getattribute("price").tostring());
%>
</body>
错误提示页面
<body>
错误提示:<%=exception.getmessage() %>
</body>
http使用
<%
//禁用页面缓存
response.setheader("cache-control", "no-store");
response.setdateheader("expires", 0);
%>
<%
//response.setheader("refresh", "10"); //10秒刷新一次
response.setheader("refresh", "5;url=login.jsp"); //5秒跳转到登录页
%>
简单登录验证
<body>
<form id="loginform" action="jsp_practice_validate.jsp">
用户名:<br />
<input type="text" id="username" name="username" style="width: 120px;" /><br />
密 码:<br />
<input type="password" id="pwd" name="pwd" style="" /><br />
<input type="submit" value="登录" />
</form>
</body>
验证页面
<body>
登录信息验证中...
<%
string username = request.getparameter("username");
string pwd = request.getparameter("pwd");
if (username.equalsignorecase("admin") && pwd.equals("123456")) {
response.sendredirect("jsp_practice_success.jsp?username=" + username);
} else {
response.sendredirect("jsp_practice_error.jsp");
}
%>
</body>
验证成功
<body>
<%= request.getparameter("username") %>登录成功!
</body>
验证失败
<body>
用户名或密码错误....
<%
response.setheader("refresh", "30;url=jsp_practice.jsp");
%>
</body>
国际化操作
<body>
<%
java.util.locale locale = request.getlocale();
string localestr = locale.tostring();
string str = "";
if (locale.equals(java.util.locale.us)) {
str = "hello";
}
if (locale.equals(java.util.locale.china)) {
str = "你好";
}
%>
<%= str %>
</body>
页面输出
<body>
<pre><%-- 显现println的换行效果 --%>
<%
enumeration enema = application.getinitparameternames(); //获取全部初始化参数
while (enema.hasmoreelements()) {
string name = (string) enema.nextelement(); //获取参数名
string value = application.getinitparameter(name);
out.println(value);
}
out.clear(); //清除缓冲区中的内容
out.clearbuffer(); //清除当前缓冲区的内容
out.flush(); //刷新流
out.isautoflush(); //检测当前缓冲区已满时是自动清空,还是抛出异常
out.getbuffersize(); //获取缓冲区的大小
%>
</pre>
</body>
page对象(实际不常用)
<body>
<%!object object;%>
<ul>
<li>getclass()返回当前object的类:<%= page.getclass() %></li>
<li>hashcode()返回该object的哈希代码:<%= page.hashcode() %></li>
</ul>
</body>
pagecontext对象(实际不常用)
<body>
<%
pagecontext.forward("login.jsp"); //把页面转发到另一个页面
pagecontext.getattribute("username"); //获取参数值
pagecontext.getattributenamesinscope(0); //获取某范围的参数名的集合,返回值为java.utilenumeration对象
pagecontext.getexception(); //返回exception对象
pagecontext.getrequest(); //返回request对象
pagecontext.getresponse(); //返回response对象
pagecontext.getsession(); //返回session对象
pagecontext.getout(); //返回out对象
pagecontext.getapplication(); //返回application对象
//pagecoutext.setattribute(""); //为指定范围内的属性设置属性值
//pagecontext.removeattribute(); //删除指定范围内的指定属性
%>
</body>
request对象详细
<body>
<br />客户端提交信息的方式:<%=request.getmethod() %>
<br />使用的协议:<%=request.getprotocol() %>
<br />获取发出请求字符串的客户端地址(uri):<%=request.getrequesturi() %>
<br />获取发出请求字符串的客户端地址(url):<%=request.getrequesturl() %>
<br />获取提交数据的客户端ip地址:<%=request.getremoteaddr() %>
<br />获取服务器端口号:<%=request.getserverport() %>
<br />获取服务器名称:<%=request.getservername() %>
<br />获取客户端的主机名:<%=request.getremotehost() %>
<br />获取客户端所有请求的脚本文件的文件路径:<%=request.getservletpath() %>
<br />获得http协议定义的文件头信息host的值:<%=request.getheader("host") %>
<br />获得http协议定义的文件头信息user-agent的值:<%=request.getheader("user-agent") %>
<br />获得http协议定义的文件头信息accept-language的值:<%=request.getheader("accept-language") %>
<br />获得请求文件的绝对路径:<%=request.getrealpath("index.jsp") %>
</body>
session对象
<body>
<%
session.setattribute("username", "sessiontest");
string username = session.getattribute("username").tostring();
//session.getlastaccessedtime(); //返回客户端最后一次与会话相关的请求时间
//session.getmaxinactiveinterval(); //以秒为单位返回一个会话内两个请求最大时间间隔
//session.setmaxinactiveinterval(3600); //以秒为单位设置session的有效时间
session.removeattribute("username");
session.invalidate(); //手动销毁session
%>
</body>