Web基础
web资源分为静态和动态资源,静态资源所有用户访问得到的结果都是一摸一样的,静态资源可以直接被浏览器解析。动态资源每个用户访问相同资源后,得到的结果可能不一样,动态资源访问之后,先转换成静态资源,再返回给浏览器。
什么是静动分离?
动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路
为什么要静动分离?
当我们去访问网站的时候,有些请求是后台处理,而有些请求则不需要后台处理,为了减少资源的访问次数,所以采用静动分离,提高网站吞吐量。
通信三要素
常见的java服务器软件
- webLogic
- webSphere
- JBOSS
- Tomcat
tomcat 配置
下载地址http://tomcat.apache.org/
安装:直接解压即可 (注意:安装目录不要有中文和空格)
目录结构
启动 文件目录下的bin目录中的startup.bat
文件双击运行 ,Linux有startup.sh
文件
出现的问题主要有运行窗口一闪而过(原因:java环境配置问题。正确配置JAVA_HOME环境)和启动报错(端口占用问题。)
部署项目的方式
1、直接放在webapps目录下或者将项目打包成war包,在将包放在webapps目录下(war自动解压)
2、配置conf/server.xml文件,在标签体中配置<Context docBase="项目存放的路径" path="访问路径 " />
3、在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写<Context docBase="项目存放的路径" />
访问的虚拟目录就是XML文件的文件名
Servlet 入门
实现Servlet接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| public class ServletDemo01 implements Servlet {
@Override public void init(ServletConfig servletConfig) throws ServletException {
}
@Override public ServletConfig getServletConfig() { return null; }
@Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
}
@Override public String getServletInfo() { return null; }
@Override public void destroy() {
}
}
|
在web.xml中配置Servlet
1 2 3 4 5 6 7 8 9
| <servlet> <servlet-name>ServletDemo01</servlet-name> //类名 <servlet-class>com.stranger.servlet.ServletDemo01</servlet-class> //类路径 </servlet>
<servlet-mapping> <servlet-name>ServletDemo01</servlet-name>//类名 <url-pattern>/demo01</url-pattern>// 格式 “/name” 访问名字 </servlet-mapping>
|
当服务器接受到请求之后,会解析请求的url路径,获取Servlet的资源路径,然后去查找web.xml文件,是否有对应的标签体内容,然后查找类名,找到之后把字节码文件加载到内存调用方法。
注解配置Servlet
servlet3.0及以上就可以使用直接使用注解快速配置了,不在创建web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface WebServlet { String name() default "";
String[] value() default {};
String[] urlPatterns() default {};
int loadOnStartup() default -1;
WebInitParam[] initParams() default {};
boolean asyncSupported() default false;
String smallIcon() default "";
String largeIcon() default "";
String description() default "";
String displayName() default ""; }
|
直接在类上使用@WebServlet
注解进行配置。(@WebServlet("资源路径(访问路径)")
)
1 2 3
| @WebServlet("/demo2") public class ServletDemo02 implements Servlet { ...
|