1.项目架构:
B/S:通过浏览器访问服务器端项目。eg:淘宝,京东。
优点:客户只需要浏览器就可简单访问服务器;项目升级方便。 缺点:界面比较粗糙。服务器压力重。
C/S:通过客户端访问服务器端项目。eg:LOL,QQ.
优点:页面比较精细,客户端部分数据存在客户端,减轻服务器压力。
缺点:需要安装客户端才能使用,对客户端电脑配置;服务升级时,客户端也要更新。
2.Java开发人员大部分做的是Java Web项目(B/S)。
2.1:Web静态资源(技术):指web页面中供人们浏览的数据始终是不变。eg:html+css+js
2.2:Web动态资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面 看到的内容各不相同。eg:Servlet,Jsp.
3.服务器容器:将项目发布到网上去。eg:tomcat,weblogic,jboss,websphere.
4.tomcat服务器容器:由apache公司和sun一起开发开源子项目。
tomcat服务器优点:最新Java技术在tomcat可以得到体现;开源免费;体积小。
tomcat目录:
4.1:bin:存入tomcat启动和停止的文件。window系统下,
启动:startup.bat,tomcat7.exe
关闭:shutdown.bat,tomcat7w.exe
4.2: conf:存放tomcat的配置文件:
server.xml:配置端口号。
context.xml:配置tomcat的重要配置信息。
4.3:lib:存放tomcat所需所有的Jar包。
4.4:logs:存放tomcat的日志文件。
4.5:temp:存放tomcat的临时文件。
4.6:webapps:可以存放要发布的项目。
4.7:work:发布的项目编译之后的文件。
5.Web项目目录结构:
src:存放Java的代码。
WebContent(webroot):存放前端页面(html,css,js,jsp)。
WEB-INF:web项目中最安全的地方,对外界不可访问。
lib:存放web项目运行所需的Jar包。
web.xml:是整个web项目核心配置文件。
6.发布web项目:
自动发布项目:
6.1:
1.(第一次):将编辑器与tomcat关联上:windows->proferences->servers-> Runtime Environments->add->选中tomcat对应的版本->给tomcat取名再导 入tomcat的(包含7个文件夹)的路径->finally->在编辑器Server->new server->选tomcat对应的版本号。->双击Server视图中的tomcat,修改项目 的发布目录deploy path。
2.将项目布置到Tomcat中:选中Server视图中tomcat右键->选中要发布的项目-》 ADD-》finally.
3.启动tomcat容器发布项目:选中Server视图中tomcat右键Start。
6.2:自动发布项目的步骤:
1.配置浏览器:windows->proferences->web Browser ->右边界面单选按纽选 择第二个,下面框选中自己定义的浏览器-》apply and close;
2.选中项目右键-》Run as ->Run on Server->next->finally.
6.3:手动发布web项目:
1.将项目布置到tomcat容器中:在tomcat的webapps目录中新建一个项目名文件 夹->将要发布的项目的webcontent下所有文件复制到刚才新的项目名文件夹 中。
2.发布项目:在tomcat的bin目录下启动tomcat容器。
7.访问一个项目在浏览器中输入网址:http://ip地址:服务器端口号/项目名/[页面名称]
8.一个tomcat容器可以同时布置和发布多个项目。
9.Servlet:是一种Java服务端技术,通过它可以前后台数据交互 。
是一种特殊Java类。
10.Servlet的家族图:
11.创建一个Servlet的步骤:
11.1创建一个Java类继承HttpServlet类,重写init(),destroy(),doGet(),doPost();
11.2:在web.xml中注册Servlet
<!-- 注册Servlet -->
<servlet>
<servlet-name>FirstServlet</servlet-name><!--Servlet注册名,可以任意取,一般用类名作为注册名-->
<servlet-class>com.qf.javawebday6.servlet.FirstServlet</servlet-class>
<!--Servlet在srcg下的全限定的路径名-->
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<!--前端想访问这个Servlet的映射路径-->
<url-pattern>/aa</url-pattern>
</servlet-mapping>
11.3:Servlet的原理图:
12.Servlet生命周期:
12.1:客户端发送一个请求到服务器
12.2:服务器接收请求并解析
12.3:服务器创建Servlet实例
12.4:服务器调用Servlet的init()来初始化Servlet初始化.[init()只调用一次]
12.5:服务器调用Servlet的Service下doGet()或doPost()来处理请求。[doGet()或doPost()调用多次]
12.6:Servlet将请求处理的结果发给服务器容器.
12.7: 服务器容器将结果响应给客户端。
12.8:服务器容器调用servlet的destroy()来销毁Servlet实例,释放资源。[destroy ()只调用一次]
13.Servlet生命周期经过四大阶段:
13.1:实例化阶段:服务器创建Servlet实例。
13.2:初始化阶段:服务器调用Servlet的init()来初始化Servlet初始化。
13.3:请求处理阶段:服务器调用Servlet的Service下doGet()或doPost()来处理请求。
13.4:生命终止阶段:服务器容器调用servlet的destroy()来销毁Servlet实例,释放资源。
14.Servlet的ServletConfig对象:可以获得当前Servlet一些配置信息和初始化参数。
使用案例:
在web.xml中的Servlet中声明初始化参数:
eg:<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.qf.javawebday6.servlet.FirstServlet</servlet-class>
<!-- 声明一个Servlet初始化参数 -->
<init-param>
<param-name>uname</param-name>
<param-value>小明</param-value>
</init-param>
</servlet>
用ServletConfig对象获取Servlet中初始化参数:
//获得Sevlet的初始化参数
String uname=this.getServletConfig().getInitParameter("uname");
15.Servlet的ServletContext对象:上下文对象,WEB容器在启动时,它会为每个WEB应用程序都 创建一个对应的ServletContext对象,它代表当前web应用,同一个项目中所有 Servlet共享一个ServletContext对象。
15.1:在Web.xml中配置全局初始化变量
eg:<!-- 声明一个全局初始化变量 -->
<context-param>
<param-name>visitcount</param-name>
<param-value>10</param-value>
</context-param>
用ServletContext对象获取全局初始化变量
//获得全局初始化参数
String visitcount=this.getServletContext().getInitParameter("visitcount");
15.2:常用方法
//按Key-value对方式将值存入到ServletContext上下文对象。
this.getServletContext().setAttribute(arg0, arg1);
//通过Key名获取ServletContext上下文对象中存入的Value值。
this.getServletContext().getAttribute(arg0);
//通过Key名删除ServletContext中key-value对
this.getServletContext().removeAttribute(arg0);