阅读电子书《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>

javaweb学习--jsp的更多相关文章

  1. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. JavaWeb学习----JSP脚本元素、指令元素、动作元素

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. JavaWeb学习----JSP简介及入门(JSP结构及JSP处理)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 艾水及水:http://www.cnblogs.com/liuhepeng 文章来源:http://www.cnblogs.com/liuhepeng ...

  5. javaweb学习5——JSP

    声明:本文只是自学过程中,记录自己不会的知识点的摘要,如果想详细学习JavaWeb,请到孤傲苍狼博客学习,JavaWeb学习点此跳转 本文链接:https://www.cnblogs.com/xdp- ...

  6. JavaWeb学习总结第三篇--走进JSP页面元素

    JavaWeb学习(三)—走进JSP页面元素 JSP:Java Server Pages,译为Java服务器页面.其脚本采用Java语言,继承了Java所有优点.JSP元素可以分为指令元素.脚本元素和 ...

  7. JavaWeb学习总结-01 JavaWeb开发入门

    一 基本概念 1 Web开发的相关知识 Web,表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页面): ...

  8. JavaWeb学习总结-04 Servlet 学习和使用

    一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...

  9. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB

    JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...

随机推荐

  1. This relative module was not found:

    晚上项目敲完,关机睡觉!  早上醒来-----打开项目,惊呆了 !This relative module was not found: 如图   这个报错,我当时怎么也没看懂!!!   后来经过测试 ...

  2. Spring Boot 最核心的 25 个注解,都是干货!

    学习和应用 Spring Boot 有一些时间了,你们对 Spring Boot 注解了解有多少呢?今天栈长我给大家整理了 Spring Boot 最核心的 25 个注解,都是干货! 你所需具备的基础 ...

  3. HBase之Table.put客户端流程(续)

    上篇博文中已经谈到,有两个流程没有讲到.一个是MetaTableAccessor.getRegionLocations,另外一个是ConnectionImplementation.cacheLocat ...

  4. python网络-计算机网络基础(23)

    一.网络简介 网络是由节点和连线构成,表示诸多对象及其相互联系. 一个人玩: 两个人玩: 多个人玩: 说明 网络就是一种辅助双方或者多方能够连接在一起的工具 如果没有网络可想单机的世界是多么的孤单 使 ...

  5. python—day15 包的认识、执行顺序、执行流程、循环导入、包的导入、绝对、相对导入

    一.包的认识   包通过文件夹来管理一系列功能相近的模块 ​ 包:一系列模块的集合体 重点:包中一定有一个专门用来管理包中所有模块的文件 包名:存放一系列模块的文件夹名字 包名(包对象)存放的是管理模 ...

  6. HTML常用特殊字符编码对照表以及其对应英文

    符号 说明 对应编码(使用时去掉空格) 英文 & AND 符号 & amp; ampersand < 小于 & lt; little > 大于 & gt; ...

  7. C# 多线程学习笔记 - 2

    本文主要针对 GKarch 相关文章留作笔记,仅在原文基础上记录了自己的理解与摘抄部分片段. 遵循原作者的 CC 3.0 协议. 如果想要了解更加详细的文章信息内容,请访问下列地址进行学习. 原文章地 ...

  8. JVM基础系列第3讲:到底什么是虚拟机?

    我们都知道在 Windows 系统上一个软件包装包是 exe 后缀的,而这个软件包在苹果的 Mac OSX 系统上是无法安装的.类似地,Mac OSX 系统上软件安装包则是 dmg 后缀,同样无法在 ...

  9. java代码之美(1)---Lambda

    Lambda 一.概述 1.什么是Lambda表达式 Lambda 表达式是一种匿名函数,简单地说,它是没有声明的方法,也即没有访问修饰符.返回值声明和名字. 它可以写出更简洁.更灵活的代码.作为一种 ...

  10. Android--拦截系统BroadcastReceiver

    前言 上一篇博客,讲了BroadcastReceiver的一些基础内容,如何注册以及发送一个广播,那是基础,不清楚的可以先看看:Android--BroadcastReceiver.但是在实际开发当中 ...