servlet+jsp+jdbc知识点.docx

上传人:b****6 文档编号:8900633 上传时间:2023-02-02 格式:DOCX 页数:9 大小:31.44KB
下载 相关 举报
servlet+jsp+jdbc知识点.docx_第1页
第1页 / 共9页
servlet+jsp+jdbc知识点.docx_第2页
第2页 / 共9页
servlet+jsp+jdbc知识点.docx_第3页
第3页 / 共9页
servlet+jsp+jdbc知识点.docx_第4页
第4页 / 共9页
servlet+jsp+jdbc知识点.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

servlet+jsp+jdbc知识点.docx

《servlet+jsp+jdbc知识点.docx》由会员分享,可在线阅读,更多相关《servlet+jsp+jdbc知识点.docx(9页珍藏版)》请在冰豆网上搜索。

servlet+jsp+jdbc知识点.docx

servlet+jsp+jdbc知识点

Servlet部分

1.web项目的结构:

项目根目录.html,*.jsp;.css;*.js,images

--WEB-INF

--classes:

保存.class文件

--lib:

项目中的jar包

web.xml:

项目的配置文件

.tld标签库的描述文件

.xml其它框架配置文件

2.开发web项目

2.1编写源文件.java

2.2编译--〉class

2.3打包:

jar例:

jar-cvfTest.war说明:

将当前目录中所有文件打入Teat.war包

Ant例:

antbuild.xml说明:

需要先在环境变量中设置ANT_HOME,bulid.xml为部署文件

集成开发工具MyEclipse,JBuilder,NetBeans..

打包成*.war

2.4部署:

把war包copy到webapps下,第一次访问时,war包会自动解压

3.访问服务器上某个项目:

协议:

//服务器IP:

端口号/项目名/资源的URI

http:

//localhost:

8080/projectName/index.html

4.Servlet:

ServerLet

运行在服务器端的,用java编写的

处理客户端的请求的小应用程序

servelt不能单独运行,必须运行在容器中:

容器:

tomcat,jboss,weblogic,websphere,glassfish;

专门的web服务器:

apacheIIS

Tomcat是一个包含了基本的WEB服务器功能的Servelt容器。

servlet中定义的方法均为:

回调方法。

(编写后交由容器调用,而非自己调用)

servlet的生命周期:

初始化--〉服务--〉销毁

init()1次service()0...多次destroy()1次

对应多个用户,启动多个线程来处理

与Servlet开发相关的类与接口位于下面2个包中:

javax.servlet.*;javax.servlet.http.*;

 Servlet(接口)-->GenericServlet(不基于任何协议的实现类)-->HttpServlet(基于HTTP协议的实现类)

自定义servlet通常继承至HttpServlet

5.servlet常用API:

HttpServletRequest:

封装请求的信息

String参数值request.getParameter(String参数名):

如果请求中无此参数,则返回NULL

String[]参数数组request.getParameterValues(String参数名):

参数中存在同名参数,使用此方法返回参数数组

未选中checkbox任何选项,则返回数组为NULL.

HttpServletResponse:

封装相应的信息

PrintWriterout=response.getWriter();

out.print();

完成对某个servlet的配置(web.xml):

建立请求与某个Servlet之间的对应关系

别名

自定义Servlet的全限定名

别名

/URI

Get方式附加参数的格式:

?

参数1名=参数1值&参数2名=参数2值&..&参数n名=参数n值

doGet():

处理Get方式发出的请求

doPost():

处理Post方式发出的请求

doGet,doPost与service方法之间的联系:

service:

伪代码

if(method.equals("Get"))

{

doGet();

}

if(method.equals("Post"))

{

doPost();

}

GET,POST方式不一样的地方:

Get:

参数信息会被编码成一个字符串,附加在URL后面

Post:

参数信息被打包到httpbody中。

form提交给某个Servlet:

设置form标签的action属性

action="/项目名/配置的URI"

请求中的参数值:

是HTML表单元素的value值,而非页面显示内容.

?

name=abc&fruit=apple&fruit=banana&weight=5&type=credit

6乱码

场合:

页面本身有中文的时候

解决办法:

servlet:

resp.setContentType("text/html;charset=gbk");

Jsp:

<%@pagecontentType="text/html;charset=gb2312"%>

注意:

一定要写在PrintWriterout=resp.getWriter();之前

场合:

解决get方式乱码问题:

解决办法:

修改server.xmlURIEncoding="GBK"或者useBodyEncodingForURI="true"

场合:

解决post方式提交内容的乱码

解决办法:

request.setCharacterEncoding("GBK");

注意:

一定要写在存取第一个参数之前

不要调用response.setCharacterEncoding("GBK");

7.ServletConfig:

初始化

初始参数的设置:

web.xml:

标记之间

使用进行配置,这个参数是这个Servlet所独有的

配置信息被封装到ServletConfig对象中

ServletConfig对象:

getInitParameter(Stringname);

8.Cookie:

当客户端浏览器接收到服务器发出包含Cookie响应头,

在客户端的硬盘上,以文件的方式保存cookie的内容。

其内容由一对键值对构成。

Cookie[]cookies=HttpServletRequest:

getCookies();

Cookiecookie=newCookie("名字","值");

cookie.setMaxAge(有效的秒数);

response.addCookie(cookie);在响应头中添加Set-Cookie头.

cookie.getName():

cookie的名字

9.Session:

时间作用域的概念:

开始:

1.打开浏览器,发出请求

结束:

1.关闭浏览器

2.session过期:

setMaxInactiveInterval(秒):

30分钟

3.强制session实效:

session.invalidate()

4.其它异常

获得Session:

HttpSessionsession=requeset.getSession();

getSession(true)相当于getSession():

获得与当前请求相关的Session对象.假如不存在,返回新的Session

getSession(false):

获得与当前请求相关的Session对象.假如不存在,直接返回NULL

setMaxInactiveInterval(秒数)

getId():

获得SessionId

inNew():

判断Session是否新建

//将obj放入session这个作用域

session.setAttribute(Stringname,Objectobj);

Objectobj=session.getAttribute(Stringname);

请求作用域:

开始:

1.发出请求

结束:

1.收到响应

//将obj放入请求这个作用域

request.setAttribute(Stringname,Objectobj);

Objectobj=request.getAttribute(Stringname);

Session与Cookie的区别:

相同点:

保存客户端的信息

不同点:

Cookie:

客户端,持久保存

Session:

服务器,在内存里

10.ServletContext:

应用程序application作用域

application作用域:

开始:

1.程序发布

结束:

1.程序终止

//将obj放入应用程序这个作用域

servletContext.setAttribute(Stringname,Objectobj);

Objectobj=servletContext.getAttribute(Stringname);

application>session>request

获得上下文对象:

通过从GenericServlet继承过来的getServletContext();

一个WEB应用只有一个ServeltContext对象.

11.请求的转发:

服务器端的转发:

1.RequestDispatcherdispatcher=context.getRequestDispatcher("/URI");

2.dispatcher.forward(request,response);

doGet-->doGet;doPost-->doPost

客户端的转发:

HttpServletResponse:

response.sendRedirect("/uri");

response.addHeader("refresh","5;url=...");

建议:

out.print("

//localhost:

8080/Servlet02/target'/>");

12.过滤器:

实现Filter接口:

初始化过滤销毁

init(),doFilter(request,response,chain),destory();

别名

过滤器的全限定名

别名

/过滤的资源

多个过滤器形成过滤器链,先进哪个,后进哪个取决于其在web.xml中的配置信息出现的位置

过滤器初始化参数的取得:

init(ServletConfigconfig)中config.getInitParameter(参数名),返回参数值

JDBC部分

1.加载驱动:

Class.forNamee("驱动名");

2.获得连接对象:

Connectionconn=DriverManager.getConnction(连接字符串);

3.通过连接对象获得处理或者预处理对象

Statementstmt=conn.createStatement();

PreparedStatementpstmt=conn.createPrepareStatement(Stringsql);

4.执行:

处理对象:

查询ResultSetrs=stmt.executeQuery(Stringsql);//返回数据集对象

非查询操作:

inti=stmt.executeUpdate(Stringsql);//此操作影响的数据库中的数据的行数

预处理对象:

给参数赋值:

pstmt.setXXX(intindex,值);//第一个参数是1,第二个参数是2

查询ResultSetrs=pstmt.executeQuery();//返回数据集对象

非查询操作:

inti=pstmt.executeUpdate();//此操作影响的数据库中的数据的行数

数据集对象:

rs.next();//下移一位,判断数据集中是否有下一条记录;

rs.getXXX(index);//第一个列是1,第二个列是2

5.释放资源:

finally

{

rs.close();

stmt.close();

conn.close();

}

6.与事务相关的几个操作:

conn.setAutoCommit(false);//禁止自动提交

mit();//提交事务

conn.rollback();//回滚事务

conn.setAutoCommit(true);//设置回自动提交

7.使用存储过程操作数据库

MVC部分

1.javaBean:

java里的组件技术(可重用)

默认的空参构造

implementsSerializable

属性:

getXxxx(),setXxxx()

pojo:

plainandoldobject:

实体类

对应于数据库中的表,其属性对应于字段

数据的载体

Dao:

DataAccessObject:

数据访问对象

一张表一个Dao,封装对此表的所有操作

2.MVC:

C:

servlet:

1.接受客户提交的请求,取出参数封装到一个pojo里

2.完成对应的业务逻辑(多步对数据库的操作)

调用Dao完成业务逻辑

3.返回下一页面

V:

jsp

1.显示页面

2.收集信息,响应客户的操作

M:

JavaBean

pojo:

封装数据,便于传递。

//传数据扔到对象去。

Dao:

封装对数据库的访问

JavaBean命名

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1