Servlet
Servlet介绍
servlet是用于开发动态web资源的技术;如果需要发一个动态web资源,需要编写一个java类,并实现servlet接口,并把开发好的java类部署到web服务器中。一般情况下,我们把实现了servlet接口的java程序称为Servlet。Servlet接口有两个默认的实现类,分别是GenericServlet和HTTPServlet。他们的关系可以在HTTPServlet和GenericServlet的源码中详细学习。
web服务器之一Tomcat
Tomcat作为Web服务器之一,具有性能优良,非常的小(它是符合Web服务器最小的服务器)的特点。下载tomcat:http://tomcat.apache.org/——找到download——下载完成后,解压到任意目录。
Tomcat目录结构:
1. bin:春芳可执行文件、启动和关闭;
2. conf:存放Tomcat的配置文件;
3. lib:存放服务器需要的jar包;
4. logs:日志文件;
5. temp:临时文件;
6. webapps:存放网站和web目录;
7. work:Tomcat的工作目录;
使用IDEA搭建Web开发环境:
-
打开idea,并创建一个微博项目;
-
配置Tomcat服务器
在Run/Debug Comfigurations中,找到Tomcat Server中的local;通过更改名字,修复警告,修改项目名称等来完成搭建。
本章节常见的HTTP :超文本传输协议响应
302:表示重定向;
404:表示请求的文件不存在,路径写错等问题;
500:服务器代码写错了,可能文件中的java代码有误。
使用IDEA开发Servlet
idea开发Servlet需要准备并且导入Servlet需要的jar包。可以通过以下操作进行自动下载jar包:
在IDEA中新建一个web项目,并新建一个package,在其中新建一个Servlet文件。此idea会自动生成一个实现了HttpServlet并重写了doGet和doPost方法的java文件,但文件的Servlet字样都是报红出错的。需要我们利用idea的只能纠错功能,就可以非常快捷的导入jar包。也可以手动将jar包导入项目的lib文件夹中。最终程序中的Servlet字样不报红,lib目录下有jar包,就是导入成功。
response
重定向
简单来说,就是将一个请求,转换到另一个地址。java中,语法如下:
response.sendRedirect("success.jsp");//重定向到成功页面
通过servletContext对象实现数据共享
-
新建一个properties文件:
driver=com.mysql.jdbc.Driver username=root password=123456 url=jdbc:mysql://localhost:3306/smbms
-
编写Servlet类:
package com.kuang.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; //读取properties配置文件 public class ServletDemo03 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //读取配置文件 //1.获得配置文件的路径 String realPath = this.getServletContext().getRealPath("/WEB-INF/classes/resources/database.properties"); System.out.println("取得的路径为:"+realPath); Properties properties = new Properties(); FileInputStream is = new FileInputStream(realPath); properties.load(is);//把文件流加载到配置文件的对象中; String driver = properties.getProperty("driver"); String username = properties.getProperty("username"); String password = properties.getProperty("password")