【第一个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编程-步步为营的更多相关文章

  1. jsp编程

     jsp编程 jsp的实质和工作原理 注释 九大内置对象 jsp文件的结构解析 脚本语法 jsp指令 jsp动作元素 EL表达式 jsp的实质和工作原理: jsp (全称:Java Server Pa ...

  2. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

  3. Java EE JSP编程基础

    一.JSP编程介绍 JSP是实现普通静态HTML和动态HTML混合编码的技术,可以说是Servlet的一种变形,相比Servlet它更像普通的Web页面.JSP在第一次运行时会花费很长时间,原因在与其 ...

  4. Servlet编程-步步为营

    [环境]eclipse j2ee;Tomcat 7.0; [模型1] package com.zhiqi; import ...; public class TestServlet extends H ...

  5. Jave工具——servlet+jsp编程中mysql数据库连接及操作通用工具类

    该工具类是在JavaWeb中连接mysql所用到的通用工具类 该类用于Java+Servlet的编程中,方便数据库的操作,连接,获取其列表值.下面是这个数据库操作类的通用方法,基本上能够用于类里面只含 ...

  6. Java Servlet JSP编程(一)

    最近想学学java编程,java现在的应用还是挺广泛的,有必要学习一下. # index.jsp <%@ page language="java" contentType=& ...

  7. Servlet,jsp,JSP技术 ,JSP编程

     一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...

  8. JSP编程技术5-购物车的实现-session会话对象

    首先十分感谢大家对我的文章的支持,我是个刚刚才找到自己方向的在校大学生,当然我的知识和能力有限,眼下正在努力恶补学习中.当我看到自己首次发表到CSDN首页的文章才几个小时阅读量就超过了100时,对我来 ...

  9. JSP编程中常用的JavaScript技术(转载)

    1.<tronMouseOver=this.style.backgroundColor=’#FFFFFF’ onMouseOut=this.style.backgroundColor=”> ...

随机推荐

  1. 使用apktool工具遇到could not decode arsc file的解决办法

    问题详情: 当前环境为 win7 64位  jdk1.7  apktool.jar(版本1.5.2)   apktool(版本windows-r05-ibot) 使用的反编译工具和apk文件为 反编译 ...

  2. QQ图片名字

    ﻩ并亲了你一下ﻩ大兔子҉҉大兔子҉҉҉҉҉҉҉҉

  3. cVim—Chrome上更强大的vim插件

    cVim——Chrome上更强大的vim插件 介绍 也许很多人在chrome上都用过类似Vimium, ViChrome的插件,这些插件的目的都差不多,就是在浏览器中提供一些类似vim的操作来提高效率 ...

  4. wait() 与 sleep

    1.对于两种方法区别 1. 这两个方法来自不同的类,sleep方法属于Thread,wait方法属于Object. 2. 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用 ...

  5. .net自定义事件,经典简单实例代码

    1,新建一个控制台应用程序TestDelegate,本项目主要实现:热水器加热,报警器监控,当热水温度达到80度的时候报警器报警这样一个简单的事件处理程序 2,定义委托处理程序 public dele ...

  6. hrbustoj 1073:病毒(并查集,入门题)

    病毒Time Limit: 1000 MS Memory Limit: 65536 KTotal Submit: 719(185 users) Total Accepted: 247(163 user ...

  7. Java Hour 48 Servlet 简介

    搞Java Web 开发,绕不开的就是Servlet 了.传说Servlet 是一种比JSP 更加古董的动态网页编程技术.在没有JSP 之前,Servlet 同时充当了展现层,业务逻辑层和持久层. 这 ...

  8. ODTwithODAC认识与安装图解

    ODTwithODAC认识 ODTwithODAC是用.Net 开发工具时,使用Oracle数据库时, 启连接作用. 安装完ODTwithODAC之后,一般需要安装 Oracle 客户端(比如win3 ...

  9. android知识体系

    1.Android架构分为4层*应用程序层 Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等.所有的应用程序都是 ...

  10. Android 下载文件 显示进度条

    加入两个权限 一个是联网,另一个是读写SD卡 <uses-permission android:name="android.permission.INTERNET">& ...