1.打开浏览器,在浏览器地址栏中输入以下地址测试: http://localhost:8080 http://127.0.0.1:8080 http://真实 ip:8080 2.如何部暑 web 工程到 Tomcat 中 配置xml文件:<Contextpath="/abc"docBase=“E:\book”/> 访问这个工程的路径如下:http://ip:port/abc/ 就表示访问 E:\book 目录 3.IDEA 整合 Tomcat 服务器 ① java就是普通的用java写的程序,直接就能运行的 ② Java Enterprise 主要是针对Java EE 项目的开发设计的“帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序”,所以web项目大多都在这个视图中进行开发。功能较前者多一些。
1.通过继承 HttpServlet 实现 Servlet 程序 一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。 ① 编写一个类去继承 HttpServlet 类 ;② 根据业务需要重写 doGet 或 doPost 方法 ;③ 到 web.xml 中的配置 Servlet 程序的访问地址 2.ServletConfig 类 作用:可以获取 Servlet 程序的别名 servlet-name 的值;获取初始化参数 init-param;获取 ServletContext 对象 3.ServletContext 类 ServletContext 是一个接口,它表示 Servlet 上下文对象;一个 web 工程,只有一个 ServletContext 对象实例;ServletContext 对象是一个域对象;ServletContext 是在 web 工程部署启动的时候创建。在 web 工程停止的时候销毁。 作用:获取 web.xml 中配置的上下文参数 context-param;获取当前的工程路径,格式:/工程路径;获取工程部署后在服务器硬盘上的绝对路径;像 Map 一样存取数据 4.HttpServletRequest 类 (1)、作用:每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。 然后传递到 service 方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletRequest 对象,获取到所有请求的信息。 (2)、HttpServletRequest 类的常用方法 getRequestURL:该方法返回客户端发出请求时的完整URL getRequestURI:该方法返回请求行中的资源名部分 getMethod() 获取请求的方式 GET 或 POST getHeader() 获取请求头 getParameter() 获取请求的参数 getParameterValues() 获取请求的参数(多个值的时候使用) getMethod() 获取请求的方式 GET 或 POST setAttribute(key, value); 设置域数据 getAttribute(key); 获取域数据 getRequestDispatcher() 获取请求转发对象 (3)、如何获取请求参数 getParameter() 获取请求的参数 getParameterValues() 获取请求的参数(多个值的时候使用) (4)、请求的转发
public class Servlet1 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 获取请求的参数(办事的材料)查看 String username = req.getParameter("username"); System.out.println("在Servlet1(柜台1)中查看参数(材料):" + username); // 给材料 盖一个章,并传递到Servlet2(柜台 2)去查看 req.setAttribute("key1","柜台1的章"); // 问路:Servlet2(柜台 2)怎么走 /** * 请求转发必须要以斜杠打头,/ 斜杠表示地址为:http://ip:port/工程名/ , 映射到IDEA代码的web目录<br/> * */ RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2"); // RequestDispatcher requestDispatcher = req.getRequestDispatcher("http://www.baidu.com"); // 走向Sevlet2(柜台 2) requestDispatcher.forward(req,resp); } } public class Servlet2 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 获取请求的参数(办事的材料)查看 String username = req.getParameter("username"); System.out.println("在Servlet2(柜台2)中查看参数(材料):" + username); // 查看 柜台1 是否有盖章 Object key1 = req.getAttribute("key1"); System.out.println("柜台1是否有章:" + key1); // 处理自己的业务 System.out.println("Servlet2 处理自己的业务 "); } }5.HttpServletResponse 类 (1)、两个输出流的说明: 字节流 getOutputStream(); 常用于下载(传递二进制数据) 字符流 getWriter(); 常用于回传字符串(常用) (2)、请求重定向 请求重定向,是指客户端给服务器发请求,然后服务器告诉客户端说。我给你一些地址。你去新地址访问。叫请求 重定向(因为之前的地址可能已经被废弃)。
public class Response1 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("曾到此一游 Response1 "); req.setAttribute("key1", "value1"); resp.sendRedirect("http://localhost:8080/07_servlet_test_war_exploded/response2"); } } public class Response2 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(req.getAttribute("key1")); resp.getWriter().write("response2's result!"); } }1.先创建书城需要的数据库和表 在数据库中完成 2.编写数据库表对应的 JavaBean 对象 package com.atguigu.pojo; User类 3.编写工具类 JdbcUtils 导包 - jdbc.properties 属性配置文件 - 编写 JdbcUtils 工具类 - JdbcUtils 测试 package com.atguigu.utils; JdbcUtils:getConnection() close() 测试:JdbcUtilsTest 4.编写 BaseDao 导包 - 编写 BaseDao 使用BaseDao的好处:我们在初学java的JDBC的部分我们应该是经常会写对数据的增删改查,比如说对学生的增删改查,或者是老师的增删改查等等。。。然而这时你会发现你所写的很多代码都是重复的,这时你就会考虑到代码的优化问题,以及常提到的高内聚低耦合这个概念。 package com.atguigu.dao.impl; BaseDao 5.编写 UserDao 和测试 UserDao 接口:实现根 据 用 户 名 查 询 用 户 信 息 、用 户 名 和 密 码 查 询 用 户 信 息、保 存 用 户 信 息 package com.atguigu.dao; UserDao UserDaoImpl 实现类: package com.atguigu.dao.impl; UserDaoImpl extends BaseDao implements UserDao UserDao 测试:UserDaoTest package com.atguigu.test; 6.编写 UserService 和测试 UserService 接口:注 册 用 户 、登录、检查用 户 名 是 否 可 用 package com.atguigu.service; UserServiceImpl 实现类: 实现UserService 接口 ,同时创建UserDaoImpl对象 package com.atguigu.service.impl; UserService 测试:UserServiceTest package com.atguigu.test; 7.编写 web 层 ① base 标签 ② 编写 RegistServlet 程序 :获取请求的参数 - 验证信息 - 跳转页面 ③ 编写LoginServlet 程序