码迷,mamicode.com
首页 > Web开发 > 详细

JSP学习笔记

时间:2016-01-09 18:30:31      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:

01:用JSP向浏览器输出

新建项目Dynamic Web Project【动态网站项目】
WebComtent中建立文件夹01,内中建立JSP File
JSP声明语句:<%!声明语句%>,通常声明全局变量、常量、方法、类
JSP Scriptlet:<%java代码%>,其中可包含局部变量、java语句
JSP表达式:<%=java 代码%>
显示注释:即HTML注释,可以在客户端显示<!–注释部分-->
隐式注释:即JSP注释,不能在客户端显示<%--注释部分--%>
 
<!--当前时间: <%= new java.util.Date().toString() %> -->
页面查看源文件:<!--当前时间: Fri Dec 25 10:29:34 CST 2015 -->
JSP编译指令:page指令
建立JSP文件get_error.jsp, Hadle_error.jsp
get_error.jsp代码:
1 <%@UTF-8之后,errorPage="handle_error.jsp"%>
2 <body>
3     int a =10;
4     int b = 0;
5     int c =a/b;
6 </body>

handle_error.jsp代码:

1 <%@ UTF-8之后,isErrorPage="true"%>
2 <body>
3 程序发生了异常。
4 </body>
include指令:在JSP中包含一个静态的文件,同时解析这个文件中的JSP语句。
创建inclube.jsp ,header.html,footer.jsp三个文件
inclube.jsp代码:
1 <body>
2     <%@ include file="header.html"%>
3     <br />
4     <%@ include file="footer.jsp"%>
5 </body>
6 header.html代码:
7 <div>this is header.</div>
8 footer.jsp代码
9 <div>this is footer.</div>

页面输出结果:

技术分享

将inclube.jsp中的<%@ inclube file=”header.html %>
更改为<%@ inclube file=”header.txt %>
并且将header.html文件的后缀名改为txt
内中this is header.(txt)
刷新浏览器,可见页面输出已变为this is header.(txt)
在footer.jsp中添加一行代码:
<%! Int a = 10; %> 则无法在inclube.jsp中再次声明a
 
JSP动作指令 forward
文件夹05 创建文件index.jsp,login.jsp
当index.jsp中引入login.jsp文件,则输出引入的文件。
index.jsp完整代码:
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <jsp:forward page="login.jsp">
 4     <jsp:param value="buddha" name="userName" />
 5     <jsp:param value="8888" name="password"/>
 6 </jsp:forward>
 7 login.jsp代码:
 8 <body>
 9     <%
10         String userName = request.getParameter("userName");
11         String password = request.getParameter("password");
12         out.println(userName);
13         out.println("<br/>");
14         out.println(password);
15     %>
16 </body>
则index.jsp页面输出结果为:buddha 8888
 
JSP动作指令 include
创建文件夹06,新建index.jsp,header.html,body.jsp文件
将index.jsp中的<head>内容……</head>放入header.html中,
将index.jsp中的<body>内容……</body>放入body.jsp中
在index.jsp中引入header.html和body.jsp文件。
则页面输出为全屏黑色背景。
index.jsp完整代码:
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <jsp:include page="header.html"></jsp:include>
6 <jsp:include page="body.jsp">
7     <jsp:param value="black" name="bgcolor"/>
8 </jsp:include>
9 </html>

header.html完整代码:

1 <head>
2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3 <title>index</title>
4 </head>

body.jsp完整代码:

1 <body bgcolor="<%=request.getParameter("bgcolor") %>">
2 </body>
JSP动作指令:useBean指令
Java Resources-src中创建class文件
package中输入com.lyyp.entity
name中输入UserEntity
interfaces-Add搜索Serializable -java.io
在UserEntity.java的class中声明私有字符串变量名。
右键Source-Generate Constructor using Fields【自动生成带参数的构造函数】,在弹窗中取消选中两个变量名,点击OK。
页面中会添加如下代码:
1 public UserEntity() {
2         super();
3     }
右键Source-Generate Getters and Setters【自动生成Getter和Setter方法】,在弹窗中选中两个变量名,点击OK。
页面中添加如下代码:
 1 public String getUserName() {
 2         return userName;
 3     }
 4     public void setUserName(String userName) {
 5         this.userName = userName;
 6     }
 7     public String getPassword() {
 8         return password;
 9     }
10     public void setPassword(String password) {
11         this.password = password;
12     }
创建07 新建register.jsp,do_register.jsp文件
浏览器输入/register.jsp,输入用户名和密码,点击提交,页面跳转到do_register.jsp,并且显示出输入的值
register.jsp作为录入注册信息 代码:
1 <body>
2     <form action="do_register.jsp" method="post">
3         用户名:<input type="text" name="userName"/> 
4         密 码:<input type="password" name="password" /> 
5         <input type="submit" value="提交" />
6     </form>
7 </body>

do_register.jsp作为注册信息处理 代码:

1 <body>
2     <%
3         String userName = request.getParameter("userName");
4         String password = request.getParameter("password");
5         out.println(userName);
6         out.println("<br/>");
7         out.println(password);
8     %>
9 </body>
jSP内置对象
out对象request对象response对象exception对象config对象page对象session对象application对象pageContext对象
 
out对象详解
创建08 ,新建out.jsp
out.jsp代码: 注释部分为缓冲区有关???【不确定】
 1 <body>
 2 <%
 3     out.println("输出到页面");
 4     out.print("输出到页面X2");
 5     out.newLine();
 6     out.println("<br/>");
 7     //out.flush();
 8     //out.clearBuffer();
 9     //out.clear();
10     out.println("获取当前缓冲区大小:"+out.getBufferSize());
11     out.println("<br/>");
12     out.println("获取缓冲区剩余字节数目:"+out.getRemaining());
13 %>
14 </body>
Request对象简介
Request.jsp代码:
 1 <body>
 2 <form action="" method="post">
 3     <input type="text" name="userName"/>
 4     <input type="submit" value="提交"/>
 5 </form>
 6 请求方法名:<%= request.getMethod() %><br/>
 7 请求的资源:<%= request.getRequestURI() %><br/>
 8 请求使用的协议:<%= request.getProtocol() %><br/>
 9 请求的服务器IP:<%= request.getServerName() %><br/>
10 请求的服务器端口:<%= request.getServerPort() %><br/>
11 客户端的IP地址:<%= request.getRemoteAddr() %><br/>
12 客户端的主机名:<%= request.getRemoteHost() %><br/>
13 表单提交来的值:<%= request.getParameter("userName") %><br/>
14 </body>

页面输出结果:                                    

技术分享

输入值,点击提交之后页面效果:

技术分享

Request对象的使用
新建register.jsp,do_register.jsp,welcome.jsp文件
register.jsp代码: 录入表单信息
 1 <body>
 2 <form action="do_register.jsp" method="post">
 3 用户名:<input type="text" name="userName"/><br/>
 4 技能:<input type="checkbox" name="skills" value="java"/>java
 5     <input type="checkbox" name="skills" value="python"/>python
 6     <input type="checkbox" name="skills" value="ruby"/>ruby
 7     <input type="checkbox" name="skills" value="golang"/>golang
 8     <br/>
 9     <input type="submit" value="提交"/>
10     <input type="reset" value="重置"/>
11 </form>
12 </body>

do_register.jsp代码:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%
 4     String userName=request.getParameter("userName");
 5     String skills ="";
 6     String[] skillArr =request.getParameterValues("skills");
 7     if(skillArr!=null && skillArr.length>0){
 8         for(String skill:skillArr){
 9             skills=skills+skill+"";
10         }
11     }
12     
13     request.setAttribute("userName", userName);
14     request.setAttribute("skills", skills);
15 %>
16 <jsp:forward page="welcome.jsp"></jsp:forward>

welcome.jsp代码: 信息展示页

<body>
信息展示页面:<br/><br/>
用户名:<%= request.getAttribute("userName") %><br/>
技能:<%= request.getAttribute("skills") %>
</body>

页面效果:

技术分享

提交后的页面效果:

技术分享

response对象详解
Response01.jsp代码:
1 <body>
2     <%
3         response.setHeader("Cache-Control", "no-cache");
4         response.setIntHeader("Refresh", 2);
5         out.println("date is" + new java.util.Date().toString() + "<br/>");
6     %>
7 </body>

页面效果:

技术分享

Response02.jsp代码:

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8"%>
3 <%
4     response.sendRedirect("http://baidu.com");【跳去百度】
5 %>

Response03.jsp代码:

1 <body>
2 <%
3     Cookie myCookie =new Cookie("buddha","shakyamuni");
4     myCookie.setMaxAge(3600);
5     response.addCookie(myCookie);
6 %>
7 </body>
Session对象使用实例
新建login.jsp, do_login.jsp, welcome.jsp, logout.jsp文件
login.jsp代码:【登录表单】
 1 <body>
 2     <form action="do_login.jsp" method="post">
 3         userName:<input type="text" name="userName" /> 
 4         password:<input
 5             type="password" name="password" /> 
 6             <input type="submit"
 7             value="submit" /> 
 8             <input type="reset" value="reset" />
 9     </form>
10 </body>

do_login.jsp代码:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <% 
 4     String userName = request.getParameter("userName");
 5     String password = request.getParameter("password");
 6     if(userName !=null && password !=null){
 7         session.setAttribute("userName", userName);
 8         response.setHeader("refresh", "2;URL=welcome.jsp");    
 9     }
10 %>

welcome.jsp代码:

<body>
<% if(session.getAttribute("userName")!= null){  %>
欢迎:<%=session.getAttribute("userName") %>
<a href="logout.jsp">注销</a>
<br/>
<%} else{ %>
请先登录
<a href="login.jsp">登录</a>
<%} %>
<% if(session.isNew()){  %>
<br/>
欢迎新用户!
<%} else {  %>
欢迎老用户!
<%}  %>
</body>

 

logout.jsp代码:

<%@ 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">
<%
    session.invalidate();
    response.setHeader("refresh", "2;URL=welcome.jsp");
%>

页面效果图:

技术分享

点击 submit

技术分享

点击 注销

技术分享

 

 

 

 

 

 

 

 

 

JSP学习笔记

标签:

原文地址:http://www.cnblogs.com/shakyamuni/p/5116804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!