学习的主要内容就是如何接收客户端发出的请求,以及如何对请求作出响应.
服务器就是一台高性能的电脑,在电脑上安装了xxx服务的软件,就称为xxx服务器
常见服务器:
邮件服务器: 在电脑上安装了邮件收发服务的软件
ftp服务器: 在电脑上安装了文件上传下载服务的软件
数据库服务器: 在电脑上安装了DBMS(MySQL,Oracle.....)
web服务器: 在电脑上安装了webServer
WebServer做了那些事儿
负责建立底层的网络连接
负责将客户端请求的文件找到,并且返回给客户端
负责根据客户端请求的路径找到对应的Servlet并执行响应
什么是Servlet
web服务软件没有业务功能, Servlet是用于扩展web服务软件 业务功能的组件,每一种业务都需要对应一个Servlet,一个网站是由n个业务组成
创建maven工程 选择 webapp骨架(模板)
在工程的main文件夹下面 创建java和resources文件夹
在工程设置页面 facets->web-> 打两个钩
配置Tomcat, 需要先从苍老师文档服务器下载tomcat 解压保存到某个盘的java文件夹下面, 然后参考文档配置Tomcat
添加Tomcat相关jar包
点击播放按钮 运行 显示 helloworld
已经成功的同学 关闭工程 从头再操作一遍
创建Maven工程 选择webapp骨架
配置Tomcat , 选Tomcat猫 , 点灯泡 , 删路径
添加java和resources文件夹
工程设置页面: 打钩 , 添加tomcat相关jar包
点击播放键运行
创建HelloServlet
找到Tomcat安装包目录 里面的conf文件夹中的logging.properties 找到最后一个UTF-8改成GBK即可
java.util.logging.ConsoleHandler.encoding = GBK
用户在客户端浏览器中向http://localhost:8080/hello这个路径发出请求,请求先被Tomcat拦截, Tomcat会取出请求路径中的子地址/hello ,拿着字地址找到对应的HelloServlet(Servlet3.0之前版本是通过web.xml配置文件找到对应的Servlet, 之后版本通过注解的方式找到Servlet),找到Servlet后可以得到Servlet的完整类名,然后通过反射的方式实例化HelloServlet,然后会调用里面的service方法, 方法里面会判断请求方式,如果请求方式是get则调用doGet方法,如果请求方式为post则调用doPost方法.
在浏览器地址栏中输入请求路径 直接发出请求 get
在html页面中通过超链接发出请求 get
通过form表单发出请求 get/post
GET请求: 请求参数放在请求地址的后面(由于提交的参数可见,所以不推荐传递敏感信息),请求参数大小受限 只能传递4k以内的数据
浏览器地址栏发出get请求
超链接发出get请求
form表单默认发出的是get请求,或者method="get" 也是发出get请求
POST请求: 请求参数放在请求体里面(用户看不见 所以安全性较高),请求参数大小无限制(一般用于传递敏感信息或上传文件)
准备工作:
1. 把jdbc03工程中的两个依赖复制到本工程的pom.xml中 刷新maven
2. 把DBUtils工具类复制到cn.tedu包下面
3. 把jdbc.properties配置文件复制到resources目录下
实现步骤:
添加数据库相关文件
bmi = 体重(公斤)/(身高*身高(米))
对照表 bmi<18.5偏瘦 18.5-24正常 24-28 偏胖 大于28是肥胖
form表单 method="post"
创建reg.html页面,页面中添加form表单提交地址为reg,请求方式post,表单中添加一个文本输入框和一个密码框再加一个提交按钮
创建RegServlet,处理路径为/reg, 在doPost里面设置字符集,获取传递过来的用户名和密码 , 并在控制台输出, 通过JDBC代码把接收到的用户名和密码保存到user表中 给客户端返回注册成功!
创建Maven工程 选择webapp骨架
配置Tomcat , 选Tomcat猫 , 点灯泡 , 删路径
添加java和resources文件夹
工程设置页面: 打钩 , 添加tomcat相关jar包
点击播放键运行
把jdbc03工程中的两个依赖复制到本工程的pom.xml中 刷新maven
把DBUtils工具类复制到cn.tedu包下面
把jdbc.properties配置文件复制到resources目录下
创建reg.html页面,页面中添加form表单提交地址为reg,请求方式post,表单中添加一个文本输入框和一个密码框再加一个提交按钮
创建RegServlet,处理路径为/reg, 在doPost里面设置字符集,获取传递过来的用户名和密码 , 并在控制台输出
在webapp下面创建bmi.html页面, 页面中添加form表单,提交地址为bmi,表单中有两个文本输入框分别输入身高和体重 最后再加一个提交按钮
创建BMIServlet,处理路径为/bmi 在doGet方法中获取传递过来的参数(得到的参数是字符串类型需要将字符串类型转成float类),通过上面的公式计算出bmi, 通过上面对照表的数据 得到给客户端返回的不同的信息,最后把得到的信息返回给客户端
创建sayhello.html页面 ,页面中准备一个form表单 提交地址为 sayhello, 表单中一个文本框和一个提交按钮
创建SayHelloServlet, 处理路径为/sayhello, 在doGet方法中获取传递过来的参数, 并且把参数返回给浏览器,在参数前面加上"你好"两个字
如果创建完Servlet 代码中显示报错,一般是因为没有将Tomcat相关jar包添加到工程中
端口号被占用: 1099 is already in use , 一般是因为有正在运行的工程,把其它工程关掉再运行即可, 如果没有其它运行的工程,找到Tomcat的安装包路径: 找到bin文件夹下shutdown.bat 双击即可 , 如果做了这步还没解决,重启电脑
页面中显示???? 或者提示下载文件 ,都是因为设置响应类型出错
启动子级时出错, 出错原因是因为Servlet里面urlParttens处理的路径没有写/ 或 写了重复路径
联系客服