首页 > 代码库 > 我整理的一些知识点
我整理的一些知识点
数据库的连接方式:
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="http://www.mamicode.com/指定给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="http://www.mamicode.com/指定要将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=http://www.mamicode.com/new String[1];
if(ov instanceof String[]){
value=http://www.mamicode.com/(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="http://www.mamicode.com/提交">"
</form>
</body>
</html>
2。check页面
<%
String name = null;
name = request.getParameter("username");//获取request中的username属性值
if(name != null){
session.setAttribute("username",name);//设置seeion的属性值
}
%>
<a href="http://www.mamicode.com/login.jsp">登录</a>
<a href="http://www.mamicode.com/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="http://www.mamicode.com/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>
我整理的一些知识点