• Servlet(一):Hello Servlet


    今天介绍的专题是servlet和jsp,属于web开发中的基础,先来实际操作一下servlet,创建你的第一个web小项目。

    1、新建一个maven项目。

    鼠标右键单击eclipse左边项目栏的空白区,选择第一个new,在出现的下拉中选择other,在新弹出的框中选择maven,点开maven选择maven project,点击next。在新弹出的框中勾选上面的第一个按钮Create a simple project (skip archetype selection),再点击next。在新弹出的框中,第一行Group Id,这里可以是项目的部分地址或者公司的部分网址,如com.baidu等,只是要反写;第二行Artifact Id,这是项目名,比如我们现在要建的项目,可以叫servlet_day01;第三行的Version是版本;第四行Packaging是项目打包的方式,选择war包即可。剩下的输入栏可以先不用管。

    建完项目后,会发现项目带了个红叉,解决办法是,点击项目名称,鼠标右键,找到许多选项中的Java EE Tools,在新出现的下拉选中选择Generate Deployment Descriptor Stub,红叉就会消失。

    2、对项目进行相关配置

    首先配置jre,项目名称右键,选中Build Path,在出现的下拉选中选择Configure Build Path,首先移除旧的jre系统库(新建maven项目默认是1.5的系统库),点击右边的Add Library,在新出现的框中选择JRE System Library,在新出现的框中找到自己对应的jre安装路径,点击finish即可。

    再来配置Tomcat,还是在Java Build Path的页面,同样点击Add Library,在新出现的框中选择Server Runtime,选择你安装好的Tomcat(文末会有一篇关于新建Maven项目的教程,可以照着步骤操作),点击finish。

    3、新建一个servlet类

    在src/main/java这个文件夹下,新建一个包,我们取名servlet,在servlet包下新建一个class,名叫HelloServlet,在它的父类那里,点击右边的Browse,在新弹出的框中输入HttpServlet,选中HttpServlet,点击ok,然后点击finish。

    重写doGet()方法和doPost()方法。在HelloServlet类里面,鼠标右键单击(或者快捷键alt+shift+s),找到Source选项,在新出现的下拉选中选择Override/Implement Methods,在新出现的弹框中勾上doPost方法和doGet方法,点击ok即可。

    4、编写jsp页面

    jsp页面存放的位置在src-->main-->webapp路径下,右键点击webapp文件夹,选择new-->other,在弹出来的框中,点开Web,选择JSP File选项,点击next,输入文件名,如hello.jsp,点击finish即可。

    将页面中存在ISO-8859-1的地方替换为UTF-8,更改编码格式。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>第一个servlet例子</title>
    </head>
    <body style="margin:50px;">
    
    <!-- 演示get请求 -->
    <a href="helloServlet">Get请求</a>
    
    <!-- 演示post请求 -->
    <form action="helloServlet" method="post">
        <label>姓名</label>
        <input type="text" name="name"/>
        <br/>
        <input type="submit" value="提交"/>
    </form>
    </body>
    </html>

    5、重写doGet()方法和doPost()方法

    /**
     * 第一个servlet例子
     * @author 小川94
     * @date 2018年6月2日
     */
    public class HelloServlet extends HttpServlet {
    
        private static final long serialVersionUID = 1L;
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) 
                throws ServletException, IOException {
            // 打印日志
            System.out.println("处理Get()请求...");
            // 设置服务器返回的数据类型
            response.setContentType("text/html");
            // 获取一个输出流
            PrintWriter out = response.getWriter();
            // 输出数据,将数据发送到浏览器
            out.println("<h1>Hello Servlet!</h1>");
            // 关闭流
            out.close();
        }
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) 
                throws ServletException, IOException {
            // 打印日志
            System.out.println("处理Post()请求...");
            // 对从浏览器获取的数据设置编码格式
            request.setCharacterEncoding("UTF-8");
            // 获取页面传入的数据
            String name = request.getParameter("name");
            System.out.println(name);
            // 设置服务器返回的数据类型
            response.setContentType("text/html;charset=UTF-8");
            // 获取一个输出流
            PrintWriter out = response.getWriter();
            // 输出数据,将数据发送到浏览器
            out.println("<h1>Hello "+name+"!</h1>");
            // 关闭流
            out.close();
        }
    
    }

    6、配置web.xml文件

    在src-->main-->webapp-->WEB-INF路径下找到web.xml文件,添加<servlet></servlet>、<servlet-mapping></servlet-mapping>标签。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
      <display-name>servlet_day01</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
      <servlet>
          <!-- servlet别名,可以随意定义,但是为了规范,命名要有实际意义 -->
          <servlet-name>hello</servlet-name>
          <!-- servlet类路径,由包名.类名组成 -->
          <servlet-class>servlet.HelloServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <!-- servlet别名,可以随意定义,但是为了规范,命名要有实际意义 -->
          <servlet-name>hello</servlet-name>
          <!-- jsp页面请求路径 -->
          <url-pattern>/helloServlet</url-pattern>
      </servlet-mapping>
      
    </web-app>

    7、部署测试

    项目名右键单击,Run As --> Run on Server,在弹出的框中选择Tomcat,点击finish即可。

    项目启动成功后,打开浏览器,在地址栏输入http://localhost:8088/servlet_day01/hello.jsp,就可以看到之前写的jsp页面,可以对刚刚写的doPost()方法和doGet()方法进行测试。地址信息不要输错,不然会报404错误。

    文章首发于我的个人公众号:悦乐书。喜欢分享一路上听过的歌,看过的电影,读过的书,敲过的代码,深夜的沉思。期待你的关注!

    公众号后台输入关键字“Java学习电子书”,即可获得12本Java学习相关的电子书资源,如果经济能力允许,还请支持图书作者的纸质正版书籍,创作不易。

  • 相关阅读:
    Oracle中修改表名遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”
    zabbix监控华为服务器硬件状态
    基于LLDP和OpenFlow的网络拓扑检测
    应用nslookup命令查看A记录、MX记录、CNAME记录和NS记录
    Dockerfile
    Get Docker CE for CentOS
    前端构建工具gulpjs的使用介绍及技巧
    Error: Cannot find module 'gulp-clone'问题的解决
    oracle 12C wmsys.wm_concat()函数
    Windows实现内网IPMI端口转发
  • 原文地址:https://www.cnblogs.com/xiaochuan94/p/9131709.html
Copyright © 2020-2023  润新知