当前位置: 首页 > news >正文

Unit02: Servlet工作原理

    Unit02: Servlet工作原理    

点击注册按钮,返回注册信息

package web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RegServlet extends HttpServlet {

    @Override
    protected void service(
        HttpServletRequest req, 
        HttpServletResponse res) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        //1.接收请求数据
        String userName = 
            req.getParameter("userName");
        String pwd = req.getParameter("pwd");
        String sex = req.getParameter("sex");
        String[] interests = 
            req.getParameterValues("interest");
        //处理乱码
        //byte[] bs = userName.getBytes("iso8859-1");
        //userName = new String(bs,"utf-8");
        //2.处理业务逻辑
        System.out.println(userName);
        System.out.println(pwd);
        System.out.println(sex);
        if(interests != null) {
            for(String interest: interests) {
                System.out.println(interest);
            }
        }
        //3.发送响应信息
        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        out.println("<p>Welcome,"+userName+"</p>");
        out.close();
    }

}

reg.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
    <!-- 
        访问路径是书写方式:
        1.完整路径
          http://localhost:8080/servlet2/reg
        2.绝对路径
          /servlet2/reg
           注意:以"/项目名"开头
        3.相对路径
          写出当前访问的资源和将要访问的资源的相对关系.
          当前:/servlet2/reg.html
          目标:/servlet2/reg
     -->
    <form action="reg" method="post">
        <p>
            账号:<input type="text" name="userName"/>
        </p>
        <p>
            密码:<input type="password" name="pwd"/>
        </p>
        <p>
            性别:
            <input type="radio" name="sex" value="M"/><input type="radio" name="sex" value="F"/></p>
        <p>
            兴趣:
            <input type="checkbox" name="interest" value="friend"/>社交
            <input type="checkbox" name="interest" value="read"/>阅读
            <input type="checkbox" name="interest" value="game"/>竞技
        </p>
        <p><input type="submit" value="注册"/></p>
    </form>
</body>
</html>

web.xml

<?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>servlet2</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-name>reg</servlet-name>
      <servlet-class>web.RegServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>reg</servlet-name>
      <url-pattern>/reg</url-pattern>
  </servlet-mapping>
  
</web-app>
View Code

 

转载于:https://www.cnblogs.com/tangshengwei/p/6412813.html

相关文章:

  • 【WPF】GridControl的使用
  • node操作mongodb
  • ubuntu 17.04 Tomcat安装
  • Android5.0(Lollipop) BLE蓝牙4.0+浅析code(二)
  • gulp自动化构建工具--压缩css、js、img、编译less、自动刷新一体--学习笔记
  • RPG难题
  • 很不错标签云js插件
  • Atitit 遍历文件夹算法 autoit attilax总结
  • Hive常用命令
  • ArcGIS Runtime SDK for WPF之测量距离和面积
  • hash随笔
  • ELASTIC API
  • 关于版本强制升级与非强制升级
  • Syntax error, insert } to complete MethodBody
  • css之鼠标cursor
  • [LeetCode] Wiggle Sort
  • 2019年如何成为全栈工程师?
  • css系列之关于字体的事
  • Django 博客开发教程 16 - 统计文章阅读量
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Java 网络编程(2):UDP 的使用
  • k8s 面向应用开发者的基础命令
  • Python打包系统简单入门
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • windows下使用nginx调试简介
  • 阿里云Kubernetes容器服务上体验Knative
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 服务器从安装到部署全过程(二)
  • 利用DataURL技术在网页上显示图片
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 如何选择开源的机器学习框架?
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 怎样选择前端框架
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • %check_box% in rails :coditions={:has_many , :through}
  • (26)4.7 字符函数和字符串函数
  • (30)数组元素和与数字和的绝对差
  • (Java)【深基9.例1】选举学生会
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .naturalWidth 和naturalHeight属性,
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET MVC 验证码
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .Net Web项目创建比较不错的参考文章
  • @RequestBody与@ResponseBody的使用
  • [1525]字符统计2 (哈希)SDUT