HttpServlet 简单表单示例

2023-12-23 00:48

本文主要是介绍HttpServlet 简单表单示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文代码转载自

《Servlet、JSP和Spring MVC初学指南》

下面是一个简单的利用get进行输入表单页面显示,post进行
表单提交内容展示的实例

package main.ServletTest;/*** Created by ehang on 2017/2/8.*/import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet(name = "FormServlet",urlPatterns = {"/form"}
)
public class FormServlet extends HttpServlet {private static final long serialVersionUID = 54L;private static final String TITLE = "Order Form";@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{response.setContentType("text/html");PrintWriter writer = response.getWriter();writer.println("<html><head><title>" +TITLE +"</title></head><body>" +"<h1>" +  TITLE + "</h1>" +"<form method = 'post'>"+ "<table>"+ "<tr>"+ "<td>Name:</td>"+ "<td><input name = 'name'/></td>"+ "</tr>"+ "<tr>"+ "<td>Address:</td>"+ "<td><textarea name = 'address' cols = '40' rows = '5'></textarea></td>"+ "</tr>"+ "<tr>"+ "<td>Country:</td>"+ "<td><select name = 'country'>"+ "<option>United States</option>"+ "<option>Canada</option>"+ "</select></td>"+ "</tr>"+ "<tr>"+ "<td>Delivery Method</td>"+ "<td><input type = 'radio' name = 'deliveryMethod' value = 'First Class'/>First Class"+ "<input type = 'radio' name = 'deliveryMethod' value = 'Second Class'/>Second Class"+ "</td>"+ "</tr>"+ "<tr>"+ "<td>Shipping Instructions:</td>"+ "<td><textarea name = 'instruction' cols = '40' rows = '5'></textarea>"+ "</td>"+ "</tr>"+ "<tr>"+ "<td> </td>"+ "<td><textarea name = 'instructiuon' cols = '40' rows = '5'></textarea></td>"+ "</tr>"+ "<tr>"+ "<td>Please send me the latest product catalog</td>"+ "<td><input type = 'checkbox' name = 'catalogRequest'></td>"+ "</tr>"+ "<tr>"+ "<td> </td>"+ "<td><input type = 'reset'/><input type = 'submit'></td>"+ "</tr>"+ "</table>"+ "</form>" +"</body></html>");}@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response )throws ServletException, IOException{response.setContentType("text/html");PrintWriter writer = response.getWriter();writer.println("<html>" +"<head><title>" +TITLE +"</title></head><body>" +"<h1>" +TITLE +"</h1>" +"<table>" +"<tr>" +"<td>Name:</td>" +"<td>" +request.getParameter("name") +"</td>" +"</tr>" +"<tr>" +"<td>Address:</td>" +"<td>" +request.getParameter("address") +"</td>" +"</tr>" +"<tr>" +"<td>Country:</td>" +"<td>" +request.getParameter("country") +"</td>" +"</tr>" +"<tr>" +"<td>Shipping Instructions:</td>" +"<td>");String[] instructions = request.getParameterValues("instructions");if(instructions != null){for(String instruction: instructions){writer.println(instruction + "<br/>");}}writer.println("</td></tr>" +"<tr><td>Delivery Method:</td>" +"<td>" +request.getParameter("deliveryMethod") +"</td></tr>" +"<tr>" +"<td>Catalog Request:</td>" +"<td>");if(request.getParameter("catalogRequest") == null){writer.println("No");}else{writer.println("Yes");}writer.println( "</td></tr>" +"</table>");writer.println("<div style = 'border:1px soild #ddd; margin-top:40px;font-size:90%'>" +"Debug Info<br/>");Enumeration<String> parameterNames = request.getParameterNames();while(parameterNames.hasMoreElements()){String paramName = parameterNames.nextElement();writer.println(paramName + ": ");String[] paramValues = request.getParameterValues(paramName);for(String paramValue: paramValues){writer.println(paramValue + "<br/>");}}writer.println("</div></body>" +"</html>");}}

使用input标签对应的name来通过request.getParameter得到提交值。该例使用 annotation WebServlet urlPatterns映射,一般提到的映射方式为web.xml中的部署描述符配置方式。
后者较前者的优势在于提供了WebServlet所不支持的若干描述 如位于<servlet>中可配置<load-on-startup>
该节点支持整数值作为输入,指定在程序启动时而非第一次调用时初始化servlet类,
当对多个servlet都配置了该节点时,不同的load-on-start节点值决定了载入的先后顺序,
基本上类似于对中间件指定载入顺序。
描述符配置的方式也可包含如servlet进行初始化信息。如利用annotation WebServlet可如下指定servlet初始化参数
@WebServlet(name = "test",urlpatterns = {"/test"};initParams = {@WebInitParams(name = "admin", value = "SV")}
)
 
相应的部署描述符servlet配置为
<servlet><servlet-name>test</servlet-name><servlet-class>SomeClass</servlet-class><init-param><param-name>admin</param-name><param-value>SV</param-value></init-param>
</sertvlet><servlet-mapping><servlet-name>test</servlet-name><url-pattern>/test</url-pattern>
</servlet-mapping>



这篇关于HttpServlet 简单表单示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/526135

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

回调的简单理解

之前一直不太明白回调的用法,现在简单的理解下 就按这张slidingmenu来说,主界面为Activity界面,而旁边的菜单为fragment界面。1.现在通过主界面的slidingmenu按钮来点开旁边的菜单功能并且选中”区县“选项(到这里就可以理解为A类调用B类里面的c方法)。2.通过触发“区县”的选项使得主界面跳转到“区县”相关的新闻列表界面中(到这里就可以理解为B类调用A类中的d方法

自制的浏览器主页,可以是最简单的桌面应用,可以把它当成备忘录桌面应用

自制的浏览器主页,可以是最简单的桌面应用,可以把它当成备忘录桌面应用。如果你看不懂,请留言。 完整代码: <!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><ti

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

宝塔面板部署青龙面板教程【简单易上手】

首先,你得有一台部署了宝塔面板的服务器(自己用本地电脑也可以)。 宝塔面板部署自行百度一下,很简单,这里就不走流程了,官网版本就可以,无需开心版。 首先,打开宝塔面板的软件商店,找到下图这个软件(Docker管理器)安装,青龙面板还是安装在docker里,这里依赖宝塔面板安装和管理docker。 安装完成后,进入SSH终端管理,输入代码安装青龙面板。ssh可以直接宝塔里操作,也可以安装ssh连接

53、Flink Interval Join 代码示例

1、概述 interval Join 默认会根据 keyBy 的条件进行 Join 此时为 Inner Join; interval Join 算子的水位线会取两条流中水位线的最小值; interval Join 迟到数据的判定是以 interval Join 算子的水位线为基准; interval Join 可以分别输出两条流中迟到的数据-[sideOutputLeftLateData,

XMG Quartz2D的简单使用

// //  Quratz2DView.m //  Quartz2D // //  Created by 王宁 on 16/5/6. //  Copyright © 2016年 ylshmacmini. All rights reserved. // #import "Quratz2DView.h" //Quartz@2D是一个二维绘图引擎,同时支

【Unity Shader】Alpha Blend(Alpha混合)的概念及其使用示例

在Unity和图形编程中,Alpha Blend(也称为Alpha混合)是一种用于处理像素透明度的技术。它允许像素与背景像素融合,从而实现透明或半透明的效果。Alpha Blend在渲染具有透明度的物体(如窗户、玻璃、水、雾等)时非常重要。 Alpha Blend的概念: Alpha值:Alpha值是一个介于0(完全透明)和1(完全不透明)的数值,用于表示像素的透明度。混合模式:Alpha B

网页脚本输入这么简单

如何在网页中进行脚本操作呢? 研究了一下,很简单,用google浏览器的Console直接操作javaScript。思路: Created with Raphaël 2.1.0 开始 输入(如何输入) 点击(如何点击) 结束 下面是,通过脚本刷直播屏的实现,直接在Console输入即可 var words=new Arra

OSG学习:阴影代码示例

效果图: 代码示例: #include <osgViewer/Viewer>#include <osg/Node>#include <osg/Geode>#include <osg/Group>#include <osg/Camera>#include <osg/ShapeDrawable>#include <osg/ComputeBoundsVisitor>#include