您的位置:首页 > 编程语言 > Java开发

学习笔记之javaweb基础:jsp基本语法,内置对象,对JavaBean的操作语法

2013-10-11 23:41 1476 查看
jsp:页面组成部分:

Template(模板)data:JSP引擎不处理的部分,比如HTML代码等。

JSP元素:JSP引擎处理的部分

编译器指令(DIRECTIVE):

页指令:<%@page import ="java.io.*"%> 用于定义JSP文件中的全局属性,作用于整个页面 ,import 指令中:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;这几个包都已经默认导入,无需再导入。

包含指令:<%@file ="relativeURL"%>

taglib指令:用于引入定制标签库

<%@tagliburi = "URIToTagLibrary prefix="tagPrefix"%>

脚本语法(SCRIPT):
Demo

HTML注释: <!--此注释会被解释并发送到浏览器上-->

隐藏注释:<%--此注释不会被解释和发送--%>

声明 :

<%!Datedate = new Date();%>

<%!inta,b,c;%>

全局对象和变量的声明,如果不加感叹号,就是局部的。

表达式

<%=expression%>

脚本段

<%codefragment%>

<%@ page language="java" import="java.util.*" 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<center>
<%!Date date = new Date(); %> <!-- 定义变量 -->
<%!int a,b,c; %>

<%int a = 12,b=10,c=a+b; %> <!-- scriptLet -->
<font color = "blue">
<%=date.toString()%> <%--表达式,此注释不会发送到浏览器上 --%>
</font><br>
<b>a = <%=a %></b>   <!-- <b>标签作用是展现粗体效果 -->
<b>b = <%=b %></b>
<b>c = <%=c %></b>

</center>

</body>
</html>


动作语法(ACTION):Demo01

JSP标签:<jsp:forward>,<jsp:include>,<jsp:getProperty>,<jsp:setProperty>,<jsp:useBean>

例子说明:demo1.jsp通过<jsp:fowward>标签转向demo01ForwardTo.jsp页面,forward标签后面的代码不再执行。

demo1.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Demo01</title>
</head>
<body>

<jsp:forward page="demo01ForwardTo.jsp">
<jsp:param value="cuige_" name="userName"/>
</jsp:forward>
<%System.out.println("此段代码不会被执行"); %>

</body>
</html>

demo01ForwardTo.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
String userName = request.getParameter("userName");
String outStr = "谢谢光临!";
outStr += userName;
out.println(outStr);
%>

</body>
</html>


JSP内置对象

request

response

pageContext

session

application

out

config

page

exception



重点:

request session

Http协议是无状态协议(stateless)协议

WebServer对每个客户端请求都没有历史记忆,Session用来保存客户端状态信息

Demo2:

demo2.jsp 表单页,session.jsp 接收表单信息并存入session.jsp,check_session.jsp检测session中用户名属性是否为null,并显示不同信息。

demo2.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<center>
<h1>欢迎来到崔哥的博客</h1>
<form action="session.jsp">
用户名:<input type = "text" name = "userName"><br><br>
<input type = "submit" value = "提交" >
</form>

</center>

</body>
</html>

session.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>将form传过来的数据存入session</title>
</head>
<body>
<%
String userName = request.getParameter("userName");
session.setAttribute("logName",userName);
%>

您的名字<%=userName %>已经写入session。<br>

<a href = "check_session.jsp">check</a>

</body>
</html>


check_session.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>check_Session</title>
</head>
<body>
<%
String name = (String)session.getAttribute("logName");
if(name == null){
%>您还未登陆。
<%
}else{
%>
<%=name %>已经登录。
<%
}
%>

</body>
</html>


application

Application对象负责提供应用程序在服务器中运行时的一些全局信息。

Demo3设置网页计数器,只要tomcat不重启,该 计数器一直往上加。

<%@ 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=ISO-8859-1">
<title>网页计数器</title>
</head>
<body>
<%
if(application.getAttribute("counter")==null){
application.setAttribute("counter", "1");
}
else{
String strnum = application.getAttribute("counter").toString();
int icount = Integer.parseInt(strnum);
icount++;
application.setAttribute("counter", Integer.toString(icount));
}
%>
<center>
<h1>您是第   <%=application.getAttribute("counter").toString() %> 位访问者。</h1>
</center>

</body>
</html>


JavaBean

JavaBean分为两种:一种是有用户界面(UI,UserInterface)的javaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操作数据库)的Bean,JSP通常访问的是后一种Bean。

 一:JavaBean定义

  JavaBean是一种可重复使用、跨平台的软件组件。JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean,例如NetBean中的那些可视化图形界面 ,

  ;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是最后一种JavaBean。

  二:Jsp与JavaBean搭配使用的特点

  1.使得Html与Java程序分离,这样便于维护代码。如果把所有的程序代码都写成jsp到网页中,会使得代码繁杂,难以维护。

  2.可以降低开发jsp网页人员对Java编程能力的要求。 //尼玛,这不是分工了嘛,估计如果一个程序猿只会写jsp估计会饿死...

  3.jsp侧重生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率。

JSP访问javabean的语法

声明:使用<jsp:useBean>标签

访问属性:<jsp:getProperty>,<jsp:setProperty>

范围:默认为page,还有request session application

Demo4:创建一个JavaBean,并在jsp文件中进行属性的读写。

Student.java

package cn.itcast.model;

public class Student {
private String name;
private int age;
private boolean sex;
public Student(){
name = "zhangsanfeng";
age = 20;
sex = true;

}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}

}

demo4.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id = "student" scope="application" class = "cn.itcast.model.Student" />
<%=student.getName() %><br>
<%student.setName("cui"); %>
<jsp:getProperty property="name" name="student"/>
<jsp:getProperty property="age" name="student"/>
<jsp:getProperty property="sex" name="student"/>
<br>

<%=student.getName() %>
<%=student.getAge() %>
<%=student.isSex() %>  <%--javabean的属性其中如果有事布尔类型的getXX方法可以写成isXX --%>

</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: