初学者之用IDEA建一个JavaWeb项目

# 前言

虽然Servlet已经被抛弃了,但是现在的一些框架仍然是建立在Servlet的基础上,比如SpringMVC,其实就是为了开发效率,在Servlet又封装了一层。

在理解了Sevelet的基础上,再理解SpringMVC就相对简单了。

接来通过创建一个Web项目来熟悉大概的流程。

# 下载Tomcat

由于我们的项目需要依赖Tomcat,在创建项目之前,需要下载Tomcat,并将其配置到项目中

进入Tomcat,左边Download选择我们想下载的版本,我这里下载的是Tomcat9版本

点击Tomcat9,进去之后往下拉,在Core这一栏里选择需要下载的版本

Mac用户选择第二个tar.gz (pgp, sha512)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载好之后解压,放到一个能找到的目录下

一般情况下,Mac用户放到根目录Macintosh HD 下的资源库(lib)中

# 创建一个Java Enterprise项目

第①步,选择Java Enterprise 版本

第②步右边New
在这里插入图片描述
第③步,选择Tomcat Server,会出现窗口让我们选择Tomcat Home,就是TomCat下载之后所放的位置

(注意:这里关联的tomcat home指的是tomcat的解压目录(bin目录的上一级目录))

然后点击ok就可以了
在这里插入图片描述
接着选择第④步,然后⑤Next

这里自己取个项目名,比如testWeb

我最终取得是testServlet01
在这里插入图片描述
选择好项目名称之后,Finish

生成如下项目结构
在这里插入图片描述

#项目配置

在 web 目录下的 WEB-INF 目录下新建两个目录: classes 和 lib
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
File -> Project Structure,点击 Modules -> 选中项目 “FirstJavaWeb” -> 切换到 Paths 选项卡 -> 勾选 “Use module compile output path”,将 “Output path” 和 “Test output path” 都改为之前创建的classes目录。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 用Servlet在浏览器中打印出HelloWorld

## 在src下创建一个包com.hr

在包里创建一个类HelloServlet,并继承HttpServlet

重写doGet方法
在这里插入图片描述
代码:

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");//设置请求的字符集类型
        resp.setContentType("text/html;charset=utf-8");//设置响应的字符集类型
        PrintWriter out=resp.getWriter();//设置输出流
        out.println("Hello,我要学习JSP了,请多多关照");//打印一段话在网页上
    }
}

## 配置web文件夹下的web.xml文件

在这里插入图片描述
浏览器每创建一个请求,就会请求一个Servlet,所以,为了应对不同的请求,我们需要创建不同的Serlet,我们需要哪些Servlet,就需要事先登记,而每创建一个Servlet就需要我们在web.xml中加入以下代码(即登记),之后,浏览器发出请求时,就会在文件中找对应的Servlet。

<servlet-name> 即我们要访问的Servlet的名字。

代码:

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.hr.HelloServlet</servlet-class>
</servlet>


<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

ps: 在此简单介绍一下其中的过程(有助于理解,大神绕道)

用户输入的URL(http://localhost:8080/testServlet01_war_exploded/hello)之后,这个后面“hello”就是我们创建的相对应的Servlet的名字,URL请求服务器相应的Servlet,服务器接到请求后,在web.xml的 (本质上是键值对)找我们之前注册的Servlet,即/hello,其对应的键为hello,由此键找到 标签中的hello,hello 找到 com.hr.HelloServlet从而执行我们创建的类HelloServlet,将其内容打印到浏览器页面。

# 用Servlet在浏览器中创建登录页面

## 在com.hr包下创建另一个Servelet类,同样继承父类HttpServlet

重写doPost方法
在这里插入图片描述
代码:

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");//设置请求的字符集类型
        resp.setContentType("text/html;charset=utf-8");//设置响应的字符集类型

        // 获取参数值
        String username = (String) req.getParameter("username");
        String password = (String) req.getParameter("password");
        // 输出到控制台
        System.out.println("username: " + username);
        System.out.println("password: " + password);
        PrintWriter out=resp.getWriter();//设置输出流
        out.println("成功!");//打印一段话在网页上
    }
}

## 配置web文件夹下的web.xml文件

在web.xml中加入以下代码
在这里插入图片描述

代码:

<servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>com.hr.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

## 在index.jsp同级目录下创建login.jsp

注意: 一定要是index.jsp的同级目录下!!!

将下列代码复制进login.jsp的标签 内
在这里插入图片描述

代码:

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="login" method="post">
    username:<input type="text" name="username">
    <br>
    password:<input type="password" name="password">
    <br>
    <input type="submit" value="login">
</form>
</body>

配置好之后运行, 然后通过URL(http://localhost:8080/testServlet01_war_exploded/login.jsp)访问,

注意后面是login.jsp,之后出现登录页面
在这里插入图片描述
输入用户名和密码

回车
在这里插入图片描述
ps: 过程

  • 浏览器通过URL向服务器请求一个jsp
  • 服务器返回一个jsp,即登录页面
  • 用户输入账号密码登录,将数据提交给服务器
  • 服务器

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值