tomcat的安装与使用
tomcat 的目录结构
bin 可执行脚本目录
conf 配置文件目录
logs 日志目录
webapps 应用程序目录
启动和停止
前提条件:
- 安装jdk
- 配置JAVA_HOME环境变量
启动: bin/startup.bat (windows下)
停止: bin/shutdown.bat (windows下)或在黑窗口下CTRL+C
ps:
可以用浏览器检查它是否真正启动: 在浏览器地址栏输入 http://localhost:8080
修改端口号
在conf/server.xml文件中搜索8080,找到后修改为其它端口号
编写servlet
/**
* 1. 继承 HttpServlet父类
* 2. 使用注解 @WebServlet(urlPatterns = "浏览器访问路径")
* 3. 覆盖父类中 service 方法
*/
@WebServlet(urlPatterns = "/hello")
public class MyServlet extends HttpServlet {
@Override
// Request : 代表请求
// Response : 代表响应
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("你好,世界");
// 用servlet可以返回一段html代码,给浏览器
// 对于中文,需要设置响应采用utf-8字符集,否则会使用英文字符集(iso-8859-1)返回响应,会有乱码问题
resp.setContentType("text/html;charset=utf-8");
// 向resp对象对象的字符输出流中写入的html代码都会返回给浏览器
resp.getWriter().println("<html><body>你好,世界</body></html>");
}
}
浏览器发送请求
语法:
http://ip地址:端口号/servlet地址?参数名1=参数值1&参数名2=参数值2…
例如:
?name=张三&pass=123
// name是参数名,张三是参数值, pass是参数名, 123 是参数值
服务器要获取请求参数:
String 请求参数的值 = request.getParameter(“请求参数名”);
ps:
如果某个参数没有传递,使用request.getParameter()返回的是null值
request.getParameter()返回的总是字符串,需要自己做数据类型转换
请求类型:
1) get 请求
直接通过浏览器地址发送的请求
2) post 请求
表单form既可以发送get请求,也可以发送post请求
区别:
1)get请求会把所有请求参数跟在地址栏之后,不适合发送敏感信息
而post请求不会把请求参数跟在地址栏之后
2)http 是不安全的,都是明文发送给服务器的
https 是安全的,会把信息发送给服务器的过程中进行加密
https 和post结合可以保证向服务器传输数据的安全性
3) get请求传输的数据有限制, post请求没有限制(任意大小的数据都可以发送给服务器)
4) get 意味着获取信息(对应查询操作)
post 意味着增,改,删等操作
ps:
1. 不要以为post请求是安全的,通过一些网络监测工具仍然可以看到post中的 参数信息
2. 对于post请求,会有中文乱码问题,解决方法是调用:
3. req.setCharacterEncoding(“utf-8”);// 手工进行解码, 需要放在所有 req.getParameter方法之前调用
4. tomcat 8 已经对get请求中的中文按utf-8进行解码了, 所以程序员不需要对get请求的中文进行额外处理(tomcat 7, tomcat 6 … 对get请求中的中文还需要特殊处理)