目录
对欢迎页面来说,我们可以只需要访问项目名,不需要填写具体的路径,我们就可以进到它的欢迎页面,具体是需要在web.xml里面配置,注意配置的时候,不需要添加/,只需要写出是哪一个.html,也就是我们需要访问的页面的路径,就好了。注意里面写的一定是从webapp的根目录开始写。当然不仅是静态可以作为一个欢迎页面,编写一个servlet(动态资源)也可以作为一个欢迎页面。这个时候在web.xml配置的路径就是<url-pattern> 这里面的路径 </url-pattern>,当然不需要添加/。比如:
<welcome-file-list>
<welcome-file>hello</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class> com.javaweb.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.print("<h1>Welcome to doGet</h1>");
}
之前学习前端的时候,黑马老师说一开始要设置一个index.html,当时很疑惑,现在知道了原来就算web.xml里面没有配置跟index.html相关的,我们只访问项目名也可以进入欢迎页面,这是为什么呢,因为对于配置欢迎页面,我们可以有两种方式,第一种是在web.xml里面,第二种就是在tomat里面的catlina里面的web.xml,找到他我们可以发现web.xml里面已经配置好了index.html。这里可以将它说是全局变量,当然第一种配置的是局部变量,局部变量优先
也就是如果一个web站点没有设置局部的欢迎页面,那么就会默认全局变量来作为一个欢迎页面。
这里来一个题外话,当然也很重要。我们知道访问一个具体的路径url,除了地址,端口号,再加上项目名,后面访问的路径我一直很迷惑,如果你要访问一个页面,我们可以直接在项目名后加上你要访问的前端页面,但是在后台该怎么将其联系在一起呢
首先,比如我们访问前端页面发出一个post请求,那么我们知道访问post请求必须要有form表单标签,并且方法里面method必须是post,然后form标签里面的属性action该怎么写呢?我们知道这里面的属性应该填写form的请求路径,所以,接下来我们会来编写一个简单servlet类
1:我们会在java里面编写一个servlet类继承httpservlet,里面会重写dopost方法
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.print("<h1>doPost</h1>");
}
2:然后我们就会在web.xml里面配置文件,我们知道在这个配置文件里面具体的内容是,我们先要通过路径<url-pattern> 这里面的路径 </url-pattern>找到名字,再根据名字找到我们所需要的类。
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class> com.javaweb.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
3:编写一个前段页面,因为我们前面发出的是一个post请求,所以我们这里需要一系列操作,前面已经解释了,那这里form里面属性action的路径就是/项目名/路径
这里的路径就是<url-pattern> 这里面的路径 </url-pattern>,这样就可以将其联系在一起了。
<form action="/servlet03/hello" method="post">
<input type="submit" value="login">