10.Servlet

网络程序-BS架构   Browser+Web Server+DB

特点:数据库只负责数据库的管理;Web服务器提供所有的业务逻辑的处理;浏览器负责提供操作界面

Servlet是Sun公司指定的一种用来扩展Web服务器功能的组件规范

组件规范包括

组件:在软件开发行业,符合一定规范,实现部分功能,并且需要部署到容器当中才能运行的软件模块

容器:符合一定规范,提供组件运行环境的一个程序

HTTP是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与Web服务器之间如何通信以及通信的数据格式

当Web容器收到一个HTTP请求时,通信数据由Web容器负责封装和提供,这些信息被解释为两个对象

与请求数据对应的是HttpServletRequest类型的对象;与响应数据对应的是HttpServletResponse类型的对象

Servlet获取请求参数值的方法getParameter(name) getParameterValues(name)

请求方式是客户端对话服务器时的一想说明,是区分请求种类的关键  Get Post

Get 在地址栏输入一个地址 点击链接 表单默认提交

Post 请求参数添加到实体内容中,可提交大量数据 相对安全

表单乱码 编码与解码方式不一致时,就会出现乱码

1.表单提交乱码

Post

1.<meta http-equiv="content-type" content="text/html;charset=utf-8">
2. request.setCharacterEncoding("utf-8")

Get

1.使用meta
2.String username=request.getParameter();
username = new String(username.getByTes("iso-8859-1"),"utf-8");

2.返回页面乱码

response.setContentType("text/html;charset=utf-8");

Servlet与数据库连接 使用JDBC访问数据库

10.1路径处理

服务器向浏览器发送一个302状态码及一个Location消息头,浏览器收到后会立即向重定向地址发出请求

response.sendRedirect(String url)

请求路径   http://ip:port/appName/xxx.html

web.xml  Servlet的主要作用为充当控制器的角色,即接受请求并分发给不同的资源,只要有一个Servlet就可以完成分发的过程

10.2Servlet对象

Servlet的生命周期:容器创建Servlet对象,为Servlet对象分配资源,调用Servlet对象的方法来处理请求,销毁Servlet

Servlet接口主要包括 init方法 service方法 destory方法

Servlet的 GenericServlet抽象类实现了servlet接口,HttpServlet抽象类继承了GenericServlet,实现了service方法

容器启动后,会为每一个Web应用创建唯一的一个符合ServletContext接口要求的对象,该对象就是servlet上下文

特点:唯一性(一个Web应用对应一个servlet) 一直存在

Servlet上下文的作用及特点

作用一 使用setAttribute绑定数据;作用二 使用removeAttribute移除绑定数据;作用三使用getAttribute获取绑定数据

10.3Servlet线程安全问题

容器收到请求之后,会启动一个线程来进行相应的处理,默认情况下,容器只会为每个Servlet创建一个实例。如果同时有多个请求访问同一个Servlet,则肯定会有多个线程访问这个Servlet的实例。如果这些线程要修改Servlet实例的某个属性,就有可能发生线程安全问题。

使用synchronized对代码加锁即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值