H.YJing

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

我整理的一些知识点

数据库的连接方式:
public Connection getCon(){
try{
Class.forName("com.mysql.jdbc.Driver");
Srting url="jdbc:mysql://localhost/?";
String user = "数据库账号";
String password = "数据库密码";
Connection conn = DriverManager.getconnertion(url,user,password);
System.out.println(conn.getMetData().getURL());

return conn;
}catch(Exception e){
e.printstackTrace();
return null;
注释
HTML注释<!-- -->
JSP注释<%-- --%>

JSP指令有三种: 格式<%@指令标记 属性 %>
page指令
include指令
taglib指令

page指令是页面指令,用来定义jsp页面的全局属性,用来使用的脚本语言,导入制定的类或者架包。
page指令有13个属性:language extend import session buffer autoFlush isThreadSafe info Errorpage isErrorPage
contentType pageEncoding

include指令是文件加载指令,用于在JSP页面插入一个包或者是代码文件。
格式<%@include file="被包含文件的地址">

taglib指令是用来引用标签库并设置标签库的前缀。
格式:<%@ taglib url="" prefix=""%>
url属性是用来制定标签文件的存放位置,prefix属性是用来指定盖标签库所使用的前缀。


JSP脚本元素主要包含3种类型
jsp声明的语句
jsp表达式
jsp scriptlets

jsp声明语句的格式<%! 变量或者方法定义%>
JSP表达式格式:<%=中间是表达式%>

jsp动作元素有7个
<jsp:include> <jsp:forword> <jsp:param> <jsp:plugin> <jsp:usebean> <jsp:setProperty> <jsp:getProperty>

<jsp:include>:动作元素是提供一种在jsp中包含页面的方式,即可以包含静态文件也可以包含动态文件。
<jsp:include>语法格式:<jsp:include page="relative URL" flush="true|false">

<jsp:forword>动作元素是页面的重定向的动作元素,它的作用是停止当前JSP页面的执行,而将客户端请求转交给另一个JSP页面。
语法格式:<jsp:forword page="转向页面的URL地址"/>

<jsp:param>动作元素是一种提供参数的附属动作参数,它以名-值对应的形式为其他动作元素提供附加信息,一般与<jsp:include><jsp:forward>
以及<jsp:param>联合使用
格式:<jsp:param name="参数名字" value="指定给param的参数值">

<jsp:plugin>动作元素可以将服务器端的javabean或者applet下载到客户端执行。//不做重点讲解,要用得时候在看。

<jsp:useBean> <jsp:setProperty> <jsp:getProperty>三个一起讲解
1:<jsp:useBean>用来装载一个将在JSP页面使用的javabean。
语法格式:<jsp:useBean id="指定javaBean实类名" class="指定的javaBean的全局定类名" scope="page|request|session|application">
scope里的四个值的含义:page:表示javabean实类在当前页面有效
request:表示该javabean实例在本次请求有效
session:表示该javabean实例在本次session内有效
application:表示该javabean实例在本应用内一直有效。

2:<jsp:setProperty>获取bean实例之后,便可以利用<jsp:setProperty>动作进行设置修改bean中的属性值
格式:<jsp:setProperty name="指定要进行设置的javabean实例名" property="指定需要修改的javabean示例中的属性值"
value="指定要将property中指定的属性设置为该属性值">

3:<jsp:getProperty>用来提取指定的bean属性值,并将转换成字符串。然后输出
格式如下:<jsp:getproperty name="指定的javabean实例名" property="指定输出的javabean中的属性名"
<jsp:getproperty>元素可以获取bean的属性值,并可以将其使用或者显示在jsp页面中。在使用<jsp:getproperty>之前,必须用<jsp:usebean>创建它

3.4jsp内置对象
jsp内置对象对应了九种
内置对象名称:request response pageContext session application out config exception
相应的作用域request response session page application page page page page

page范围:指所设置的属性仅在当前页面有效。使用pageContext的setAttribute()方法可以设置属性值。使用pageContext的getAttribube()方法获得属性值。
request范围:值属性仅在一次请求范围内有效。使用request的setAttribute()方法设置属性值。使用request的getAttribute()方法获得属性值。
session范围:指的是属性仅在浏览器与服务器进行一次回话的范围内有效,当和服务器断开连接后,属性就会失效。使用session的setAttribute()方法可以设置设置属性值,使用session的getAttribute方法
获得属性值
application范围:指属性在整个web应用中都有效,直到服务器停止后才失效。使用application的setAttribute()方法可以设置属性值。使用session的getAttribute()方法尅获得属性值。

request对象
request对象用于获取客户端信息。实际上,jsp容器会将客户端的请求信息封装在request对象中。在客户端发出请求是会创建request对象。在请求结束后,则会销毁request对象。
两个常用的对象
1。用request.getParameterNames();
Enumeration enu=request.getParameterNames();//获取所有参数值
while(enu.hasMoreElements()){
String paraName=(String)enu.nextElement();//打印参数名
System.out.println(paraName+": "+request.getParameter(paraName));//打印参数值
}

2。request.getParameterMap();
Map map=request.getParameterMap();
Set keSet=map.entrySet();
for(Iterator itr=keSet.iterator();itr.hasNext();){
Map.Entry me=(Map.Entry)itr.next();
Object ok=me.getKey();
Object ov=me.getValue();
String[] value=new String[1];
if(ov instanceof String[]){
value=(String[])ov;
}else{
value[0]=ov.toString();
}

for(int k=0;k<value.length;k++){
System.out.println(ok+"="+value[k]);
}
}
3 //request.setCharacterEncoding("gb2312");//设置编码格式
String username = request.getParameter("username");//获取用户名
String strage = request.getParameter("age");//获取年龄,此时为string类型
int age = Integer.parseInt(strage);//将字符串解析为整数

2:response对象
response对戏那个包含了从jsp页面返回客户端的所有信息,其作用域是它所在的页面。response对象是javax.servlet.ServletResponse类的一个实例,它封装由jsp产生的响应,并返回客户端以响应请求。
它被作为_jspService()方法的一个参数而由引擎传递给jsp。
response经常用于设置HTTP标题,添加cookie,设置相应内容的类型和状态,发送HTTP重定向和编码URL。
使用重定向的方法例子
<%
String str = null;
str = request.getParameter("username");
//判断用户输入文本是否为null
if(str == null){
str = "";
}
//使用utf-8字符集讲str解码为字节序列,并将结果存储到字节树组中
byte b [] = str.getBytes("utf-8");
str = new String(b);
if(str.equals(""))
{
response.sendRedirect("response.jsp");//使用sendRedirect方法实现重定向
}
else{
out.print("欢迎你在那");
out.print(str);
}
%>

3:out对象
out内置对象是一个缓冲的输出流,用来向客户端返回信息。它是javax.servlet.jsp.JspWriter的一个实例,由于想客户端输出是要先进行连接,所欲总是采用缓冲输出的方式,因此out是缓冲输出流。

4:session对象
session对象是会话对象,用来记录每个客户端的访问状态。一个是客户端向服务器发送请求(request),然后服务器返回响应(response),而这样的连接关闭后就不能在服务器保留响应的连接信息
在这种情况下便采用session来记录连接的信息
session对象的结构类似于散列表,通过setattribute方法,可以将参数object指定对象obj添加到session对象中,并为添加的对象指定一个索引关键字,如果添加的两个对象的关键字相同,则先添加对象
被清除
与session对象相关的操作中最重要的就是关于属性的操作,与属性操作的想换方法有setAttribute(),getAttribute(),removeAttribute().
例子login。jsp页面
<body>
<%
String name="";//判断是否是新的session
if(!session.isNew()){
name=(String)session.getAttribute("username");//获取session中username属性值
if(name == null)
name="";
}

%>
<p>Session ID:<%=session.getId() %></p>
<form action="check.jsp" method="post">
用户名:<input type="text" name="username"><br>
年龄:<input type="text" name="age"><br>
<input type="submit" value="提交">"


</form>
</body>
</html>
2。check页面
<%
String name = null;
name = request.getParameter("username");//获取request中的username属性值
if(name != null){
session.setAttribute("username",name);//设置seeion的属性值
}

%>
<a href="login.jsp">登录</a>
<a href="logout.jsp">注销</a>
<p>当前用户为:<%=name %></p>
<p>邮件中共有50封邮件</p>
3.logout.jsp页面
<%
String name=(String)session.getAttribute("username");//获取session中的username属性值
session.invalidate();//清空session
%>
<%=name %>再见
<a href="login.jsp">重新登录</a>

5.application对象
application对象用于获取和设置Servlet的相关信息。它的声明周期是从服务器启动到服务器关闭位置,一旦创建application对象,该对象就一直存在,application中封装了jsp所在的web应用中的信息
例子
<body>
<%
String count = (String)application.getAttribute("count");
if(count == null){
count = "1";
}else{
count = Integer.parseInt(count)+1+"";
}
application.setAttribute("count",count);

%>
<%="<h1>到目前为止,访问网站的人数为:"+count+"</h1>" %>
</body>
</html>

6:pageContext对象
pageContext对象是一个比较特殊的对象,使用它不仅可以设置page范围内的属性,还可以设置其他范围内的属性。通过pageContext还可以访问本页面中的所有其他对象,如前面介绍的request,
response,out对象。
例子
<body>
<%
pageContext.setAttribute("attributename","page_scope");//设置page范围内的属性
request.setAttribute("attributename", "request_scope");//设置request范围内的属性
session.setAttribute("attributename", "session_scope");//设置session范围内的属性
application.setAttribute("attributename","application_scope");//设置application范围内的属性
//获得怕个范围的属性
String str1 = (String)pageContext.getAttribute("attributename",pageContext.PAGE_SCOPE);
//获得request范围的属性
String str2 = (String) pageContext.getAttribute("attributename",pageContext.REQUEST_SCOPE);
//获得session范围的属性
String str3 = (String) pageContext.getAttribute("attributename",pageContext.SESSION_SCOPE);
//获得application范围的属性
String str4 = (String)pageContext.getAttribute("attributename",pageContext.APPLICATION_SCOPE);

%>
attributename在不同范围内的属性<br>
<%="page范围:"+str1 %><br>
<%="request范围"+str2 %><br>
<%="session范围"+str3 %><br>
<%="application范围"+str4 %><br>
</body>

7:page对象指的是当前页面的JSP本身,它对javax.lang.Object类的对象,通过page对象可以方便第调用Servlet累定义的方法,page对象在实际开发过程中并不经常使用.

8:config对象
config对象是ServletConfig类的一个实例,在Servlet初始化时,可以通过config向Servlet传递信息.在jsp开发中config对象用得也不多,只有编写Servlet时,当需要重载Servlet的init()方法才用config方法.

9:exception对象
exception对象是javax.lang.Throwable类的对象,用来处理页面的错误和异常的.在jsp开发时,习惯的做法是在一个页面使用page指令的errorPage属性,让该属性指向一个专门用于异常处理的页面.
例子
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" errorPage="exception1.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>Insert title here</title>
</head>
<body>
发生错误的位置
<%
int a = 5;
int b = 0;

%>
输出结果<%=(a/b) %>产生异常
</body>
</html>
第二个页面代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true"%>
<%@page import="java.io.*" %>
<!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>
<%=exception.getMessage() %>
<%
exception.printStackTrace(new java.io.PrintWriter(out));
%>
</body>
</html>

 

javabean的使用
1:javabean是用java语言描述的软件组件模型,jsp搭配javabean的组合已经成为常见的jsp成语标准.广泛应用.
对于编程员我们来说,使用javabean可以实现代码的重复利用,极大简化程序设计过程.在jsp中javabean分两种:可视化的javabean和非可视化的javabean.
使用非可视化的javabean更好地实现业务逻辑和表现层之间的分离,降低了它们之间的耦合度.在jsp中只使用非可视化javabean.
<jsp:setProperty>调用的集中形式
(1):<jsp:serProperty name="mybean" property="*">
property="*"表示request对象将在所有与javabean属性名字相同的请求参数传递给相应的属性的setter方法.mybean是javabean实例名
(2):<jsp:setProperty name="myBean" property="*"/>
该形式表示使用request对象中的一个参数值来设置javabean实例中的一个属性值.property指定了bean的属性名,该属性名应该和request请求的名字保持相同.此处表示讲request对象中的参数id传入
javabean实例mybean中
(3)<jsp:setProperty name="mybean" property="id" param="personid"/>
该形式表示讲request对象中的参数personid传入javabean实例mybean的属性id中,其中param指定使用那个请求参数来作为bean属性值.要说明是,此时param制定的bean属性和request参数的名字可以不相同
(4):<jsp:setProperty name="mybean" property="id" value="123"/>
该形式表示向javabean实例mybean的属性id传入制定的值.其中value用来指定传入bean中属性的值

2:javaBean的存在范围
在jsp中jsp属性有4中存储范围.分别是page,request,session,application.在javaBean中也可以设置其存在范围.他的意义与属性范围相同.
1:page范围:page范围表示每个javabean对象值属于当前的jsp页面,只在当前页面中有效
2:request范围:request范围表示每个javabean对象只在一次请求中有效,如果页面跳转,则该属性会失效.
3:session范围:session范围是指每个javaBean对象都寄存于session中,即在浏览器与服务器的一次会话范围内有效,和服务器断开连接后,该javaBean对象就失效.
4:application范围:application范围表示每个javaBean对象都存在于application中,也就是整个服务器范围内有效,当服务器停止时,该javabean对象就失效.

posted on 2016-09-01 11:16  H.YJing  阅读(181)  评论(0)    收藏  举报