1、web相关的概念
软件的基本架构 cs(client-server)客户端服务器 比如手机上的app 缺点:下载,升级
bs(broswer-server)浏览器服务器,比如京东网站 优点:不下载,不升级
tomcat
2、为什么要使有tomcat?
broswer-->tomcat[servlet]-->jdbc-->数据库
3、tomcat是什么?
tomcat是apache和sun共同开发的一个web应用服务器
4、tomcat的下载和安装
安装:解压即安装(安装jdk)
tomcat的目录结构
bin 脚本
conf配置文件
lib jar包
logs 存放日志
temp 临时文件
webapps war包
work工作目录:该目录用于存放jsp被访问后生成对应的server文件和.class文件。
tomcat的启动:双击bin/stattup.bat
tomcat的关闭:双击bin/shutdown.bat
5、servlet入门
1、什么是servlet?
servlet是java语言编写的运行在tomcat上的程序,用来处理http请求。
servlet提供了一个接口(servlet),该接口规定了tomcat和servlet实例之间的契约,所以所有的servlet实例都必须实现该接口
Servlet容器将Servlet类载入内存,生成Servlet实例并调用它具体的方法
6、servlet快速入门
创建javaweb项目
1、创建maven工程
2、添加依赖 在pom.xml中添加
3、创建servlet实例
4、配置servlet(web.xml中配置)
可以不配置 添加注解@webservlet(" ")
5、设置打包方式(在子工程的pom.xml中)
6、部署web项目
7、启动tomcat
8、servlet的生命周期
构造方法:第一次请求时,tomcat通过反射创建servlet对象时调用,只调用一次
init():初始化 创建对象后调用一次
service():每次请求都调用
destory():tomcat关闭时调用一次
9、创建servlet的三种方式
1.实现servlet接口的方式
2.继承GenericServlet抽象类的方式
3、继承HttpServlet类的方式
10、Servlet获取前端提交的参数
例:
1、在login.jsp中添加表单
2、servlet实例
通过前端input标签name的属性值获取前端发送的数据
前端发送请求数据到servlet,如果post请求的话,input输入的中文数据的时候,servlet接到的数据是乱码的。
request.setCharacterEncoding("utf-8");
servlet响应到客户端
可能会出现乱码
response.setContentType("text/html;charset=utf-8");//解决servlet响应到客户端乱码的情况
11、重定向与转发
例:登陆页面跳转到主页面
1、转发
浏览器url不变,还是原来的request请求,数据不丢失
login.jsp
servlet实例
request.getRequestDispatcher("main.jsp").forward(request,response);
main.jsp中
2、重定向
浏览器url改变,创建新的request,数据丢失
一个页面跳转到另外一个页面(应用场景)、登录页面跳转到主页面: login.jsp====>LoginServlet====>main.jsp
login.jsp
servlet实例
response.sendRedirect("main.jsp")
main.jsp中
12、Servlet的自动加载
配置之后 servlet的构造函数和init方法就会在web应用加载的时候执行
13、ServletConfig对象
是tomcat创建的配置对象
①初始化参数
②获取servletConfig对象
ServletConfig servletConfig = getServletConfig();
③获取参数
String username = serveltConfig.getInitParameter("username");
String password = servletConfig.getInitParameter("password")
14、ServletContext对象
是tomcat创建的配置对象和域对象
1、域对象
①获取域对象
ServletContext servletContext = getServletContext();
②添加数据
servletContext.setAttribute("msg", "hello, sister!!!");
③获取数据
Object msg = servletContext.getAttribute("msg");
④删除数据
servletContext.removeAttribure("msg");
2、配置对象
①配置参数
<context-param>
<param-name>username</param-name>
<param-value>admin</param-value>
</context-param>
②获取ServletContext对象
ServletContext servletContext = getServletContext();
③获取参数
String username = servletContext.getInitParameter("username");
15、request对象
是tomcat创建的请求对象和域对象
①request对象包含了前端提交参数和请求头
②request对象还是一个域对象
1、域对象怎么用?
req.setAttribute("msg","aaa")
Object msg = req.getAttribute("msg");
2、怎么获取参数?
String username = req.getParameter("username");
16、response对象
tomcat创建的响应对象
①往浏览器的响应头传递数据
②往浏览器的响应体传递数据
响应头:
response.setContentType("text/html;charset=utf-8;msg=aaa") ;
响应体:
response.getWriter().write("<h1>hello<h1>");
17、web三层架构
web层 接受请求并控制跳转
service层 业务层
dao层 写数据 访问sql
调用关系:
servlet---->service--->dao