Servlet基础和使用

1.Web相关

1、 C/S B/S
C/S --> 但凡是需要安装软件到电脑上,并且使用的时候需要联网才可以使用的软件,都是C/S
C 客户端的意思,Java语言也可以开发一个安装包,需要用到java基础中的Swing技术。
C#/.net 微软的这套技术,才是桌面之王。
B/S架构的软件-- 浏览器/服务器 Java是B/S老大,php,python,C#
java语言能成为老大,不是说语言设计有多少,性能有多高。--java 靠技术生态。
游戏:桌面游戏,网页游戏
桌面游戏:安装包很大,画质非常清晰,体验感很好。 C/S
网页游戏:无需安装,输入网址,就可以玩,非常的方便,但是一般都是小游戏。
发展趋势:所有游戏都是网页游戏,包括你买电脑,打开电脑,输入账号密码,云桌面操作系统。
2、java web
web 是万维网的意思,java web就是使用java语言开发web的技术。
3、常用的web服务器: tomcat,jetty 免费
weblogic(Oracle),JBoss,websphere 收费的
4、Tomcat服务器,免费的,开源的,性能不是特别好的java web服务器
从某种意义上来讲,它连服务器都不算,servlet容器
所有技术和软件都不要使用最新的,除非你是高手-- 新的软件和技术存在诸多问题,出现问题后网上的帖子太少,遇到过的人太少,无法解决怎么办?
一般在公司里面,除非一个技术老的不行,每替换一个老的技术或者工具都要给出足够的理由。

2.Tomcat工具的使用(重点)

1、下载并解压,解压一定不要在中文路径下
2、找到bin中startup.bat (windows操作系统)/ startup.sh (linux操作系统)
startup.bat启动Tomcat、shutdown.bat停止Tomcat
3、如果启动的时候黑窗口一闪而过,请检查JAVA_HOME配置是否正确
4、启动成功,并且没有报错 org.apache.catalina.startup.Catalina.start Server startup in 1496 ms
5、在浏览器中输入:http://localhost:8080/ 看到那只猫就说明没有问题了。

关于环境变量的配置:
JAVA_HOME D:\Program Files\Java\jdk1.8.0_181
CLASS_PATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
Path 添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
需要注意的点:
localhost = 127.0.0.1
tomcat默认端口是8080 ,可以修改
conf/server.xml

port 修改为你想修改的端口 http://localhost:8848/

IP和port?
电脑上的任何一个软件,启动以后,都会占用电脑上的一个端口号 0~65535
一旦一个软件率先占用了某个端口号,下一个软件还想使用该端口号,就会报错。
程序运行时才会占用计算机的端口号,不运行是不占用的。
自定义端口号的时候不要太随心所欲,比较低的端口基本上都被计算机本身的服务给占了。
每一个计算机都会有自己的IP,有且仅有一个。
如果我们想访问某一台电脑上的某个服务,我们需要知道电脑的IP和服务对应的端口号才可以
特殊的端口:80 端口,访问80端口,80可以省略不写。

当tomcat启动的时候报错:Caused by: java.net.BindException: Address already in use: bind
说明端口被占用了,99%以上的情况就是你之前的服务没有关闭。
tomcat 关闭 直接将黑窗口关掉,非正常关闭 shutdown.bat

3.Idea中使用Tomcat流程

Settings--> Application Servers --> Tomcat Server --> + --> tomcat路径即可

4.创建Servlet

IDEA如何创建Java Web项目?
Servlet 可以解决:
页面上的数据到java代码
java 代码中的数据也可以传递给页面。
常见的Java web服务器,基本上都符合J2EE规范,Tomcat也是符合J2EE部分规范的这样一种服务器。
规范:程序的世界中,规范就是接口。
Servlet只是J2EE规范中的其中一种,Servlet其实就是接口。
Servlet的实现方案:三种
代码编写的前提条件是:导入了servlet-api.jar jsp-api.jar
这两个jar包,是tomcat中有的,所以无需我们导入。
第一种:实现Servlet接口。
public class Demo01Servlet implements Servlet
代码中需要时实现5个方法。
编写Servlet的套路:先写实现类,再在web.xml中配置,然后启动tomcat 访问
要想运行servlet,需要配置tomcat的相关内容,让tomcat和项目关联
虚拟路径-- 配置时指定的项目名
servlet的访问路径 url-partten 这个里面编写的路径
http://localhost:8848/abc/demo01
第二种实现方法: 通过实现抽象类GenericServlet

public class Demo02Servlet extends GenericServlet {

	   只需要关心service方法即可。
}

第三种实现方法:HttpServlet 通过重写doGet /doPost方法实现servlet

public class Demo03Servlet extends HttpServlet {

			@Override
			protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
				System.out.println("浏览器通过get方法访问servlet");
			}
		}

以上三种方式,常用第三种。
我们编写完java,一定要配置:

<servlet>
        <servlet-name>demo03Servlet</servlet-name>
        <servlet-class>com.qfedu.servlet.Demo03Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo03Servlet</servlet-name>
        <url-pattern>/demo03</url-pattern>
    </servlet-mapping>

能不能不写这个配置,省略掉呢?
从web3.0开始,servlet支持注解了。
@WebServlet("/demo04") 修饰你的servlet类,就无需上面的配置了。
从此以后,我们写servlet,都是继承 HttpServlet + @WebServlet("/xxx")

Servlet对象什么时候被创建?什么时候被销毁?
默认情况下是这个Servlet什么时候被访问,什么时候被创建。
如果你想在tomcat启动的时候就创建该对象,需要特殊配置。
如果是xml配置,只要是非负数,都是tomcat启动就执行的。
如果多个servlet中都有序号,按照序号由小到大的顺序执行
1
如果是注解的配置:
@WebServlet(value = "/demo04",loadOnStartup = 4)
Tomcat容器正常关闭,Servlet对象会被销毁掉。

Servlet基础和使用

上一篇:1.pycharm技巧及问题解决


下一篇:Nginx--原理剖析