如何实现一个最基本的web应用?

目录

实现一个最基本的web应用

Servlet规范包括什么呢?

开发一个带有Servlet (java小程序)的webapp(重点)

 解决Tomcat服务器在DOS命令窗口中的乱码问题(控制台乱码)


实现一个最基本的web应用


•第一步:找到CATALINA_ HOMElwebapps目录
。所有的webapp要放到webapps目录下。(这是Tomcat服务器的要求。如果不放到这里,Tomcat服务器找不到)
•第二步:在CATALINA_HOMElwebapps目录下新建一个子目录,起名:oa
。这个目录名oa就是这个webapp的名字。
•第三步:在oa目录下新建资源文件,例如:index.html
。编写index.html文件的内容。
•第四步:启动Tomcat服务器
•第五步:打开浏览器,在浏览器地址栏上输入这样的URL:
o http://127.0.0.1:8080/oa/index.html
•思考一个问题:
我们在浏览器上直接输入一个URL,然后回车。这个动作和超链接一样吗?既然是一样的,我们完全可以使用超链接。

<!--注意以下的路径,以/开始,带项目名,是一个绝对路径。不需要添加:http://127.0.0.1:8080-->
<a href="/oa/login.html">user login2</a>
<!--多个层级也没有关系,正常访问即可。-->
<!--注意:我们目前前端上的路径者B““开始的,都是加项目名的。-->
<a href="/oa/test /debug/d.html">d pages</a>

遵循Servlet规范的webapp,这个webapp就可以放在不同的WEB服务器中运行。(因为这个webapp是遵循servlet规范的。)


Servlet规范包括什么呢?


•规范了哪些接口
•规范了哪些类
•规范了—个web应用中应该有哪些配置文件
•规范一个web应用中配置文件的名字
•规范了个web应用中配置文件存放的路径
•规范了一个web应用中配置文件的内容
•规范了—个合法有效的web应用它的目录结构应该是怎样的。


开发一个带有Servlet (java小程序)的webapp(重点)


第一步:在webapps目录下新建一个目录,起名crm(这个crm就是webapp的名字)。当然,也可以是其它项目,比如银行项目,可以创建一个目录bank,办公系统可以创建一个oa。
•注意:crm就是这个webapp的根


第二步:在webapp的根下新建一个目录:WEB-INF
•注意:这个目录的名字是Senvle(规范中规定的,必须全部大写,必须一横一样。必须的必须。)


第三步:在WGB-NF目录下新建一个目录:classes
•注意:这个目录的名字必须是全部小写的classes。 这也是Servlet规范中规定的。另外这个目录下一定存放的是ava程序编译之后的class文件(这里存放的是字节码文件)

第四步:在WEB-INF目录下新建一个目录:Iib
•注意:这个目录不是必须的。但如果—个webapp需要第三方的jar包的活,这个jar包要放到这个lib目录下,这个目录的名字也不能随意编写,必须是全部小写的lib。例如java语言连接数据库需要数据库的驱动jar包。那么这个jar包就一定要放到lib目录下。这Servlet规范中规定的。


第五步:在WEB-INF目录下新建一个文件:web.xml
•注意:这个文件是必须的,这个文件名必须叫做web.xml。这个文件必须放在这里。
一个合法的webapp,web.xml文件是必须的,这个web.xml文件就是一个配置文件,在这个配置文件中描述了请求路径和Servlet类之间的对照关系。
•这个文件最好从其他的webapp中拷贝,复制粘贴

<?xml version="1.0" encoding="'UTF-8"?>
<web-appxmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi-"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemalocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0"
metadata-complete="true">
</web-app>

这个Servlet接口不在JDK当中。(因为Servlet下是javaSE了。Senvlet属于javaEE,是另外的一套类库。)


servlet接口 (Servlet.class文件)是Oracle提供的。(最原始的是sun公司提供的。)
Servlet接口是JavaEE的规范中的一员。


Tomcat服务器实现了Servlet规范,所以Tomcat服务品也需要使用Servlet接口。Tomcat服务器中应该有这个接口,Tomcat服务器的CATALINA_HOME\lib目录下有一个servlet-api.jar,解压这个servlet-api.jar之后,你会看到里面有Servlet.class文件。


重点:从jakartaEE9开始,Servlet接口的全名变了:jakarta.servlet.servlet
•注意:编写这个java小程序的时候,java源代码你愿意在哪里就在哪里,位置无所谓,你只需要将java源代码编译之后的class文件放到classes 目录下即可。
• 第七步:编译我们编写的HelloServlet
• 重点:你怎么能让你的Hellosenvlet编译通过呢?配置环境变暴CLASSPATH
CLASSPATH=,;C:\dev\apache-tomcat-10.0.12\lib\servlet-api‘.jar


• 思考问题:以上配置的CLASSPATH和Tomcat服务器运行有没有关系?
•没有任何关系,以上配置这个环境变量只是为了让你的HelloServlet能够正常编译生成class文件。

第八步:将以上编译之后的HelloServlet.class文件接贝到WEB-INF\classes目录下。
第九步:在web.xml文件中编写配置信息,让“请求路径"和"servlet类名“关联在一起。

这一步用专业术语描述:在web.xml文件中注册Servle类

<web-app xmlns="https://jakarta.ee/xl/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0"
metadata-complete="true">
<!--servlet描述信息一->
<!--任何一个servlet都对应一个servlet-mapping-->
<servlet>
<servlet-name>fdsafdsagfdsafdsa</servlet-name>
<!--这个位置必须是带有包名的全限定类名-->
<servlet-class>com.bjpowernode.servlet.HelloServlet</servlet-class>
</servlet>

<!--servlet映射信息-->
<servlet-mapping>
<!--这个也是隨便的,不过这里写的内容要和上面的一样。-->
<servlet-name>fdsafdsagfdsafdsa</servlet-name›
<!--这里需要一个路径-->
<!--这个路径唯一的要求是必须以 ,开始-->
<!--当前这个路径可以殖便写-->
<url-pattern>/fdsa/fd/saf/d/sa/fd/sa/fd</url-pattern>
</servlet-mapping>

</web-app>

第十步:启动Tomcat服务器
第十一步:打开浏览路,在浏览路地址栏上输入一个url,这个URL必须是:

• http://127.0.0.1:8080/crm/fdsalfd/safld/sa/fd/salfd
•非常重要的一件事:浏觉器上的清求路径不能随便写,这个请求路径必须和web.xml文件中的url-pattern一致,
注意:浏览器上的请求路径和web.xml文件中的urlpattern的唯一区别就是:浏览器上的请求路径带项目名:/crm

•非常重要的一件事:浏览器上的请求路径不能随便写,这个请求路径必须和web.xml文件中的url-pattern一致。
•注意:浏览器上的请求路径和web.xm文件中的url-pattern的唯一区别就是:浏览器上的请求路径带项目名:/crm
•浏览器上编写的路径大复杂,可以使用帮斜接。(非常重要:htm/页面只能放到WEB-INF目录外面。)
•以后不需要我们编写main方法了。tomcat服务器负责调用main方法,Tomcat服务器后动的时候执行的就是main方法。我们
javaweb程房员只需要编写Servlet接口的实现当,然后将其注册到web.xm/文件中,即可。
总结一下:
一个合法的webapp目录结构应该是怎样的?

 解决Tomcat服务器在DOS命令窗口中的乱码问题(控制台乱码)


将CATALINA_ HOME/conflogging.properties文件中的内容修改如下:
java.util.logging.ConsoleHandler.encgding=GBK

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值