JSP编程-步步为营
【第一个JSP举例】
header.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<% out.println("welcome调用这个JSP页面"); %>
footer.jsp
<br> </body>
</html>
jsp代码
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%> <%@ include file="/header.jsp" %><%--包含页头 --%> <%!
int i=0;
private int count(){
i++;
return i;
}
%>
<p>调用count输出<%=count() %></p>
<p>调用count输出<%=count() %></p>
<br>
<%@ include file="/footer.jsp" %><%--包含页底 --%>
【概念总结】
language定义使用的脚本语言
contentType定义jsp字符编码和页面响应的MIME类型
pageEncoding jsp页面的字符编码
scriptlet标签
<%! %>可定义全局变量、全局方法、全局类
<% %>可定义局部变量
<%= %>输出
JSP注释
<!-- -->HTML客户端可见
<%-- --%>客户端不可见
//单行注释
/* 多行注释 */
静态包含
<%@ include file="header.html" %>
<%@ include file="footer.jsp" %>
动态包含
<jsp:include page="header.html" />
<jsp:include page="footer.jsp" />
【jsp九大内置对象】
pageContext request response session application config
out page exception
【四大作用域】
Page范围 只在一个页面中保存数据 抽象类
Request范围 只在一个请求中保存数据 接口
Session范围 在一个会话范围中保存数据,仅供单个用户使用
接口
Application范围 在整个服务器上保存数据,所有用户共享
【Page范围】
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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> <%
pageContext.setAttribute("name","名字");
pageContext.setAttribute("age",24);
%> <%
String str1=(String)pageContext.getAttribute("name");
int n=(Integer)pageContext.getAttribute("age");
%>
<p>姓名:<%=str1 %></p>
<p>年龄:<%=n %></p>
</body>
</html>
【Request范围】
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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> <%
request.setAttribute("name","马云");
request.setAttribute("age",23);
request.setAttribute("sex","男");
%>
<jsp:forward page="f_target.jsp"></jsp:forward> </body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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> <%
String str=(String)request.getAttribute("name");
int age=(Integer)request.getAttribute("age");
String sex=(String)request.getAttribute("sex");
%> <p>姓名:<%=str %></p>
<p>年龄:<%=age %></p>
<p>性别: <%=sex %></p> </body>
</html>
【Session范围】
session保存在服务器中,只要页面不关闭,就可以随时取得
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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>Session</title>
</head>
<body>
<h3>设置Session</h3>
<%
session.setAttribute("bookName","JAVA编程");
session.setAttribute("price",25.5);
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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>get Session</title>
</head>
<body> <%
String bookName=(String)session.getAttribute("bookName");
double price=(Double)session.getAttribute("price");
%> <p>图书名称:<%=bookName %></p>
<p>图书价格:<%=price %></p> </body>
</html>
【Application范围】范围更大,浏览器关闭或者换用其他浏览器,也可以访问数据
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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.setAttribute("bookName","数据库");
application.setAttribute("price",45.85);
%> </body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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> <%
String bookName=(String)application.getAttribute("bookName");
double price=(Double)application.getAttribute("price");
%>
<p>图书名称:<%=bookName %></p>
<p>图书价格:<%=price %></p>
</body>
</html>
知识点:
【获取Request的头信息】jsp引入 枚举
输出 name value
<%@ page import="java.util.*" %> <%
Enumeration e=request.getHeaderNames();
while(e.hasMoreElements()){
String name=(String)e.nextElement();
String value=request.getHeader(name);
%>
<p><%=name %> <%=value %></p>
<%
}
%>
【Response】示例:每隔一秒刷新时间
<%
response.setIntHeader("Refresh",1);
Date date=new Date();
%>
<h3>时间</h3>
<%=date.toLocaleString() %>
网页重定向
<h3>网页重定向-客户端跳转</h3>
<%--response.sendRedirect("page4.jsp");--%>
<h3>用户登录post</h3>
<form action="login.jsp" method="post">
用户:<input type="text" name="userName" /><br><br>
密码:<input type="password" name="password" /><br><br>
记住我<input type="checkbox" name="remember" value="remember" /><br><br>
<input type="submit" value="提交" />
<input type="reset" value="重置" />
</form>
login.jsp的代码
<%
String name=request.getParameter("userName");
String pass=request.getParameter("password");
String rem=request.getParameter("remember");
%>
<%=name %>
<%=pass %>
<%=rem %>
post get比较
post放在数据包里-get放在Url后面
get数据量小、不安全
【Cookie示例】用户登录记住用户名和密码
<%@ 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>
<script>
function resetValue(){
document.getElementById("userName").value="";
document.getElementById("password").value="";
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test response</title>
</head>
<body>
<%
String userName=null;
String password=null;
Cookie[] cos=request.getCookies();
Cookie c=null;
for(int i=0;i<cos.length;i++){
c=cos[i];
if(c.getName().equals("nameAndPass")){
//out.println("保存的用户名和密码"+c.getValue ());
userName=c.getValue().split("-")[0];
password=c.getValue().split("-")[1];
}
}
if(userName==null){userName="";}
if(password==null){password="";}
%>
<h3>用户登录post</h3>
<form action="login.jsp" method="post">
用户:<input type="text" name="userName" id="userName" value="<%=userName %>"/><br><br>
密码:<input type="password" name="password" id="password" value="<%=password %>"/><br><br>
记住我<input type="checkbox" name="remember" value="remember" /><br><br>
<input type="submit" value="提交" />
<input type="button" value="重置" onclick="resetValue()" />
</form> </body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="javax.servlet.http.*" %>
<!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>login.jsp</title>
</head>
<body> <%
String name=request.getParameter("userName");
String pass=request.getParameter("password");
String rem=request.getParameter("remember");
if("remember".equals(rem)){
Cookie c=new Cookie("nameAndPass",name +"-"+pass);
c.setMaxAge(24*60*60*7);//记录一个星期
response.addCookie(c);//保存Cookie
}
response.sendRedirect("page5_response.jsp");
%> </body>
</html>
【out对象】
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!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>Test out</title>
</head>
<body>
<%
int total=out.getBufferSize();//总缓存大小
int noUse=out.getRemaining();//未使用缓存大小
int u=total-noUse;
%>
<p>总缓存大小:<%=total %></p>
<p>未使用缓存大小:<%=noUse %></p>
<p>已使用缓存大小:<%=u %></p>
</body>
</html>
【config对象】
config.getInitParameter();//获得xml里的初始化参数param
【exception异常处理】
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page errorPage="ex2.jsp" %>
<!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>Exception</title>
</head>
<body>
<%
int a=1;
int b=0;
out.println(a/b);
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page isErrorPage="true" %>
<!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>isErrorPage</title>
</head>
<body> <%
if(exception!=null){
String str=exception.getMessage();
out.println("错误提示信息:<br>");
out.println(str);
}
%> </body>
</html>
此处需要在浏览器中运行,不在tomcat里运行
【pageContext对象】页面上下文
<%
pageContext.setAttribute("name0","pageInfo");
request.setAttribute("name1","requestInfo");
session.setAttribute("name2","sessionInfo");
application.setAttribute("name3","applicationInfo"); out.println("->"+pageContext.getAttribute("name0")+"<br>");
out.println("->"+pageContext.getRequest().getAttribute("name1")+"<br>");
out.println("->"+pageContext.getSession().getAttribute("name2")+"<br>");
out.println("->"+session.getServletContext().getAttribute("name3")+"<br>");
%>
JSP编程-步步为营的更多相关文章
- jsp编程
jsp编程 jsp的实质和工作原理 注释 九大内置对象 jsp文件的结构解析 脚本语法 jsp指令 jsp动作元素 EL表达式 jsp的实质和工作原理: jsp (全称:Java Server Pa ...
- 利用JSP编程技术实现一个简单的购物车程序
实验二 JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...
- Java EE JSP编程基础
一.JSP编程介绍 JSP是实现普通静态HTML和动态HTML混合编码的技术,可以说是Servlet的一种变形,相比Servlet它更像普通的Web页面.JSP在第一次运行时会花费很长时间,原因在与其 ...
- Servlet编程-步步为营
[环境]eclipse j2ee;Tomcat 7.0; [模型1] package com.zhiqi; import ...; public class TestServlet extends H ...
- Jave工具——servlet+jsp编程中mysql数据库连接及操作通用工具类
该工具类是在JavaWeb中连接mysql所用到的通用工具类 该类用于Java+Servlet的编程中,方便数据库的操作,连接,获取其列表值.下面是这个数据库操作类的通用方法,基本上能够用于类里面只含 ...
- Java Servlet JSP编程(一)
最近想学学java编程,java现在的应用还是挺广泛的,有必要学习一下. # index.jsp <%@ page language="java" contentType=& ...
- Servlet,jsp,JSP技术 ,JSP编程
一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...
- JSP编程技术5-购物车的实现-session会话对象
首先十分感谢大家对我的文章的支持,我是个刚刚才找到自己方向的在校大学生,当然我的知识和能力有限,眼下正在努力恶补学习中.当我看到自己首次发表到CSDN首页的文章才几个小时阅读量就超过了100时,对我来 ...
- JSP编程中常用的JavaScript技术(转载)
1.<tronMouseOver=this.style.backgroundColor=’#FFFFFF’ onMouseOut=this.style.backgroundColor=”> ...
随机推荐
- jsp回车键登录代码
$("body").keydown(function(event) { if (event.keyCode == "13") {// keyCode=13是回车 ...
- Android中如何让手机屏幕不待机
在Android中,申请WakeLock可以让你的进程持续执行即使手机进入睡眠模式,比较实用的是比如后台有网络功能,可以保证操作持续进行. 方法: 在操作之前加入 PowerManager pm = ...
- deep web
http://free.vpn.wwdhz.com/ (1小时vpn)http://thehiddenwiki.org (Hao123这样的导航网站)http://hss3uro2hsxfogf ...
- jquery easy ui 1.3.4 布局layout(4)
4.1.easyui布局-layout 在easyui里面只有一种布局方式,layout(东.南.西.北.中)的布局方式,创建layout布局的方式如下: <div id="cc&qu ...
- WPF入口Application
1.WPF和 传统的WinForm 类似, WPF 同样需要一个 Application 来统领一些全局的行为和操作,并且每个 Domain (应用程序域)中只能有一个 Application 实例存 ...
- 蓝桥杯 入门训练 Fibonacci数列(水题,斐波那契数列)
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非 ...
- 面向服务的体系结构(SOA)——(2)ESB介绍及职责
企业服务总线(Enterprise Service Bus)是SOA的基础设施,之所以这么说是因为要达到SOA的目标(增强灵活性)就必须有调用服务的方法,ESB的存在有效的保证了消费者能够调用供应者提 ...
- 微信公众平台网页获取用户OpenID方法
下面我们一起来看看关于微信公众平台网页获取用户OpenID方法,有需要了解的朋友可以一起来看看吧.用户点击微信自定义菜单view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值 (即网页链接 ...
- cocos2dx游戏开发——捕鱼达人mini版学习笔记(二)——MainMenu的搭建
一.创建文件~ MainMenuScene.h MainMenuScene.cpp MainMenuLayer.h MainMenuLayer.cpp 那个场景的搭建就不多说了,那个我的打 ...
- SqlServer2000数据库字典--表结构.sql
SELECT TOP 100 PERCENT --a.id, CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, C ...