servlet学习笔记
Servlet
学习Servlet主要学习的就是如何获取客户端的请求以及如何对该请求做出响应.
什么是服务器
服务器就是一台高性能的电脑, 在电脑上安装了 xxx
服务软件, 就可以称为xxx服务器
常见服务器:
邮件服务器: 在电脑上安装了提供邮件收发服务的
软件
ftp服务器: 在电脑上安装了提供文件上传下载服务
的软件
数据库服务器: 在电脑上安装了
DBMS(MySQL/Oracle...)
web服务器: 在电脑上安装了 WebServer
WebServer做了哪些事儿?
负责建立底层的网络连接
负责将客户端请求的文件 找到并返回
负责根据客户端请求的路径 找到对应的Servlet并执
行
什么是Servlet?WebServer软件本身是不提供业务功能,Servlet是用
于扩展Web服务软件业务功能的组件, 一般情况下 每
种业务都需要对应一个Servlet, 一个网站是由n个业
务组成,做java程序员的主要职责就是通过Servlet实
现网站中的各种业务功能.
如何在idea中配置Tomcat
1. 创建maven工程 选择骨架(工程模板) webapp骨架 ,
在pom.xml中出现了60多行内容说明成功
2. 从文档服务器下载Tomcat安装包, 把文件保存到一个
容易找到的地方路径中尽量不要有中文(建议路径:
d:/java ) 并解压
3. idea中配置Tomcat , 点击Add confifig.... 点击里面左
上角加号 找到 Tomcat Server->Local 如果是第一
次需要配置Tomcat路径, 点灯泡选第二个, 删路径
4. 在main文件夹下创建java和resources文件夹
5. 在工程结构页面(Ctrl+alt+shift+s)的Facets中打钩
在Models里面的Dependencies中添加Tomcat相关
依赖
6. 点击播放键运行
Tomcat控制台乱码问题
找到tomcat安装包中conf文件夹里面的常见错误:
1. 端口占用错误: 1. 关闭其它工程 2. 找到tomcat安
装包里面的bin文件夹找到shutdown.bat 强制关闭
Tomcat
2. 新建文件找不到Create New Servlet ,是因为 在工程
结构页面中没有打钩
3. 创建完Servlet直接在代码中报错, 是因为 在工程结构
页面中没有添加Tomcat相关依赖
4. 在客户端页面中显示???? 是因为设置响应类型代码
有误
response.setContentType("text/html;charset=utf-
8");
5. 启动子集时出错 错误原因:1. 处理路径时少写了/ 2.
工程中两个Servlet处理了相同的路径
创建工程简单版本1. 创建maven工程选择webapp骨架
2. 配置Tomcat 点灯泡(选第二个) 删路径
3. 创建java和resources文件夹
4. 工程结构页面 打钩 和添加 Tomcat相关依赖
5. 点击播放键运行工程 检查是否显示Helloworld (点
击运行前需要关闭其它工程)
6. 在java文件夹中创建HelloServlet , 设置处理路径
为/hello 在doGet方法中返回"测试成功!" 几个字给
客户端 最后运行测试
Servlet响应流程
用户在浏览器中向http://localhost:8080/hello 发出请
求, 请求先被Tomcat拦截, Tomcat会获取出字地址
(/hello) 通过字地址找到对应的Servlet, 之前版本使用
web.xml记录请求地址和Servlet的关系, Servlet3.0之后
的版本 通过注解方式记录地址和Servlet的关系, 找到对
应的Servlet之后 通过反射技术实例化Servlet 并调用
service方法 在service方法中判断请求的方式是get还是
post如果是get 调用doGet方法 如果是post调用doPost
方法.
客户端发出请求的几种方式
1. 在浏览器地址栏中输入请求地址 发出的请求为 get
请求
2. 在html页面中通过超链接发出请求 也是get请求
3. 在html页面中通过form表单 发出请求 get/post请求方式GET和POST
Get请求: 请求参数在请求地址的后面, 由于参数可见
所以不能传递敏感信息, 请求参数大小受限 只能传递
4k以内的数据
浏览器地址栏中写请求路径 发出get请求
超链接 发出get请求
form表单 默认发出的是get请求
POST请求:请求参数放在请求体里面, 由于不可见所以
一般传递敏感信息, 请求参数没有大小限制, 一般文件
上传请求都使用POST
form表单 指定请求方式为post 时 method=post
发出post请求
SayHello练习
1. 创建demo04.html页面 在页面中准备form表单 提
交地址为sayhello 表单中一个文本框和一个提交按
钮
2. 创建SayHelloServlet 处理路径为/sayhello 在doGet
方法中获取传递过来的内容 然后在内容后面拼接上
你好两个字 返回给客户端
BMI身体指数练习bmi= 体重(公斤)/(身高x身高(米)) 举例 70公斤 1.8
米 70/(1.8x1.8) =
对照表 bmi<18.5 偏瘦 18.5-24 正常体重 24-28
偏胖 大于28 肥胖
步骤:
1. 创建bmi.html页面 在页面中 准备form表单 提交
地址为bmi 在form表单中有两个文本输入框, 分别
获取用户输入的身高和体重 还有一个提交按钮
2. 创建BMIServlet 处理路径为 /bmi 在doGet方法中
获取传递过来的身高和体重, 得到的身高和体重为
字符串类型 需要先转成浮点数 之后再按照公式进
行计算, 按照上面的对照表 给客户端返回对应的信
息.
新工程中实现注册功能
1. 创建maven工程 选择webapp骨架 工程名
12servlet1_2
2. 配置Tomcat 点灯泡 删路径
3. 创建java和resources文件夹
4. 工程结构页面 打钩 和 添加Tomcat相关依赖
5. 创建reg.html页面 页面中添加form表单 提交地址为
reg 请求方式为post 页面中一个文本输入框和一个
密码框 和一个注册按钮6. 创建RegServlet处理路径为/reg 在doPost方法中获
取传递过来的用户名和密码,如果考虑用户名有中文的
话 需要获取参数之前设置字符集(因为请求方式为
post)
7. 把昨天工程中pom.xml文件中和数据库相关的两个依
赖复制到新工程pom.xml, DBUtils复制到cn.tedu包
下面 , jdbc.properties复制到resources目录下
8. 在doPost方法中获取连接 并执行SQL语句把用户名
和密码保存到数据库中
登录功能步骤:
1. 创建maven工程 选择webapp骨架 工程名
12servlet1_3
2. 配置Tomcat 点灯泡 删路径
3. 创建java和resources文件夹
4. 工程结构页面 打钩 和 添加Tomcat相关依赖
5. 创建login.html页面 页面中添加form表单 提交地
址为login请求方式为post 页面中一个文本输入框和一
个密码框 和一个登录按钮
6. 创建LoginServlet处理路径为/login 在doPost方
法中获取传递过来的用户名和密码,如果考虑用户名有中文
的话 需要获取参数之前设置字符集
7. 把上一工程中pom.xml文件中和数据库相关的两个依赖
复制到新工程pom.xml, DBUtils复制到cn.tedu包下
面 , jdbc.properties复制到resources目录下
8. 在doPost方法中获取连接 并执行SQL语句 查询到数
据返回登录成功没有查询到返回用户名或密码错误 参考
jdbc03工程中的Demo05

浙公网安备 33010602011771号