Java Web Servlet基础

一、 Servlet的概念

a) Servlet是一个Java类

b) 特点:

l 运行在服务器软件(Tomcat等这种软件)之内

l 用于服务器端接受、处理、输出数据

 

一、 客户端提交数据的方式

a) get:

l 如果表单没有设置method属性,则默认就会采用get方式

l 超链接也会采用get方式进行提交

b) post:

l 只有当表单设置了method属性,而且设置为post,才会采用post方式

 

 

 

二、 Servlet的使用

a) 命名规则:功能描述 + Servlet

l 例如:LoginServletStudentServlet

b) 继承:

class TestServlet extends HttpServlet

c) 配置:


 

d) 重写doGet和doPost方法

l doGet:处理get方式提交的请求

l doPost:处理post方式提交的请求

e) 获取客户端提交的数据

l String 数据 = 请求.getParameter(“name值”);

1. 根据name获取单个的value值

l String[] 数据集 = 请求.getParameterValues(“name值”);

2. 根据name获取多个同名的value值(常见于:复选框)

三、 中文乱码的解决

a) get方式:

l 产生乱码的原因在于:get方式提交的数据是追加到地址栏的,而客户端在发出请求时,地址栏会按照iso-8859-1的编码格式来提交,在服务器得到数据之后,将其按照iso-8859-1拆分为字节数组,再按照utf-8重新组装成String

l String 结果 = 请求.getParamter(“name值”);

 String 新结果 = new String(结果.getBytes(“iso-8859-1”),”utf-8”);

b) post方式:

l 因为post会将表单作为整体进行提交,所以只需要将表单的编码格式设置为utf-8

请求.setCharactorEncoding(utf-8);


一、Servlet的生命周期

Servlet只能用在服务器软件之内

Servlet的生命周期分为4个阶段:

创建对象(服务器软件自动创建对象:服务器会在第一次请求到达之时创建对象)

创建对象使用的方法是构造方法

初始化(服务器软件:创建对象之后)

init()

服务(每次请求到达都会执行)

service():会执行多次(由service方法来决定使用doGet还是doPost

销毁(关闭服务器)

destroy()

二、Servlet的跳转

内部跳转:请求.getRequestDispatcher(路径).forward(请求响应);

外部跳转:响应.sendRedirect(路径);

区别:

1、内部跳转地址栏会显示请求的路径;外部跳转地址栏会显示最终的路径

2、内部跳转和外部跳转其实都是get方式提交数据

3、内部跳转能将请求中的数据传递下去;外部跳转不能将请求中的传递下去

结论:如果需要通过请求传递数据,则必须使用内部跳转;否则数据就丢失了

 

 

四、综合

登录操作

课时二

开发web项目

1、将项目所有的jsp编码格式设置为utf-8

window --> preferences --> myeclipse --> files and editors --> jsp --> utf-8

2、设置项目的编码格式为utf-8

项目名称 --> 右键 --> properties --> text file encoding --> utf-8

 

一、服务器之间数据的传递

保存数据:请求.setAttribute("名称", 数据);

读取数据:Object 数据 请求.getAttribute("名称");

只能使用内部跳转,才能将请求的数据进行传递

对比:

String 数据 请求.getParameter("名称"); //这是获取客户端发送的数据

Object 数据 请求.getAttribute("名称"); //这是获取服务器之间传递的数据

 

传递数据的2种特殊方式:

隐藏域:<input type="hidden" name="名称" value="">

隐藏域一般用于表单

url重写:user?name=value&name1=value1&name2=value2

url重写一般用于超链接

二、jsp

jsp = html + java + css + js

jsp中,<% java代码 %>

 

 

三、三层架构

(第一层:展示层):jsp

(第二层:控制层):servlet

(第三层:数据库访问层):dao

(实体类:传输数据的载体):entity


 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值