Java中前台JSP请求Servlet实例(http+Servlet)
1、前台jsp代码 himily.jsp,定义了用户名和密码两个输入框,使用post方式提交:/order-web/HimilyServlet其中order-web为站点名称,HimilyServlet为servlet访问路径
<%@ 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>Welcome to here</title>
</head>
<body>
<form action="/order-web/HimilyServlet" method="Post">
用户名:<input type="text" value="请输入用户名" name="user" size="20px"><br>
密码:<input type="password" value="请输入密码" name="pswd" size="20px"><br> <input type="submit" value="提交" size="10px">
</form>
</body>
</html>
himily.jsp
2、servlet层代码:MyServlet.java
新建MyServlet并且指定servlet的路径为/HimilyServlet
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>OrderServlet</servlet-name>
<display-name>OrderServlet</display-name>
<description></description>
<servlet-class>com.suning.logistics.order.web.OrderServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>QueryOrder</servlet-name>
<display-name>QueryOrder</display-name>
<description></description>
<servlet-class>com.suning.logistics.order.web.QueryOrder</servlet-class>
</servlet>
<servlet>
<servlet-name>MyServlet</servlet-name>
<display-name>MyServlet</display-name>
<description></description>
<servlet-class>com.suning.logistics.order.web.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>OrderServlet</servlet-name>
<url-pattern>/OrderServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>QueryOrder</servlet-name>
<url-pattern>/QueryOrder.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/HimilyServlet</url-pattern>
</servlet-mapping> </web-app>
web.xml
MyServlet.java代码,这里是接受客户端的请求以及处理后的响应
方法一:
Map<String,String[]> ps = request.getParameterMap();
获取客户端的所有请求参数的Key和Value值存入一个Map中,并且Value是数组类型,便于有相同key的时候组成二维数组
package com.suning.logistics.order.web; import java.io.IOException;
import java.io.PrintWriter;
import java.security.Principal;
import java.util.Map; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet implementation class MyServlet
*/
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
//System.out.println("himily's servlet!");
//response.getWriter().write("aaaa");
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String user = request.getParameter("user");
String pswd = request.getParameter("pswd");
response.setStatus(200);
PrintWriter pw=response.getWriter();
pw.write("<html><body><p>登录成功!\n你输入的用户名为:"+user+"\n你输入的密码为:"+pswd+"</p></body></html>");
pw.close();
}catch(Exception e){
response.getWriter().write(e.toString());
} } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//doGet(request,response);
Map<String,String[]> ps = request.getParameterMap();
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
// String user = request.getParameter("user");
// String pswd = request.getParameter("pswd");
response.setStatus(200);
PrintWriter pw=response.getWriter();
pw.write("<html><body><p>登录成功!\n你输入的用户名为:"+ps.get("user")[0]+"\n你输入的密码为:"+ps.get("pswd")[0]+"</p></body></html>");
pw.close();
} }
MyServlet.java
方法二:
//获取客户端POST参数的值
String user = request.getParameter("user");
String pswd = request.getParameter("pswd");
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//doGet(request,response);
//Map<String,String[]> ps = request.getParameterMap();
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//获取客户端POST参数的值
String user = request.getParameter("user");
String pswd = request.getParameter("pswd");
response.setStatus(200);
PrintWriter pw=response.getWriter(); //输出响应信息到客户端
pw.write("<html><body><p>登录成功!\n你输入的用户名为:"+user+"\n你输入的密码为:"+pswd+"</p></body></html>");
pw.close();
}
servlet方法二
3、访问地址:
POST访问地址为:http://localhost:9008/order-web/himily.jsp
Get方式访问地址:http://localhost:9008/order-web/HimilyServlet?user=aaa&pswd=bbbb
直接访问Servlet的地址:http://localhost:9008/order-web/HimilyServlet
Java中前台JSP请求Servlet实例(http+Servlet)的更多相关文章
- java中List的用法和实例详解
java中List的用法和实例详解 List的用法List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供 ...
- Java中的文件上传(原始Servlet实现)
从原始的Servlet来实现文件的上传,代码如下: 参考:https://my.oschina.net/Barudisshu/blog/150026 采用的是Multipart/form-data的方 ...
- java中的http请求的封装(GET、POST、form表单形式)
目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,Ht ...
- java中注解的使用与实例 (二)
java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...
- 【转】java中注解的使用与实例
原文:http://www.cnblogs.com/pepcod/archive/2013/02/20/2918719.html java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单. ...
- [转]Java中的对象和对象引用实例浅析
在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起了解一下对象和对象引用之间的区别 ...
- Java中list<Object>集合去重实例
一:Java中list去重的方法很多,下面说一下其中一种方法:把list里的对象遍历一遍,用list.contain(),如果不存在就放入到另外一个list集合中: 二:实例 这里需要注意的是:使用c ...
- java中输出流OutputStream 类应用实例(转)
OutputStream类该类是字节输出流的抽象类,定义了输出流的各种操作方法.这些方法的说明如表1所示.下面通过实例介绍如何使用OutputStream类向控制台输出字符串信息.步骤如下.(1)创建 ...
- java中注解的使用与实例(一)
注解目前非常的流行,很多主流框架都支持注解,而且自己编写代码的时候也会尽量的去用注解,一时方便,而是代码更加简洁. 注解的语法比较简单,除了@符号的使用之外,它基本与Java固有语法一致.Java S ...
随机推荐
- 基于redis分布式锁实现“秒杀”
转载:http://blog.5ibc.net/p/28883.html 最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路. 业务场 ...
- [delphi]indy idhttp post方法
网易 博客 LOFTCam-用心创造滤镜 LOFTER-最美图片社交APP 送20张免费照片冲印 > 注册登录 加关注 techiepc的博客 万事如意 首页 日志 LOFTER 相册 音乐 ...
- js疑问
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];var aCopy = arr.slice();aCopy; // ['A', 'B', 'C', 'D', ...
- Android学习起步 - AutoCompleteTextView及MultiAutoCompleteTextView控件使用
大家在用百度搜索时,输入几个词就出现下拉框可选,以下两个控件就具有这个功能 AutoCompleteTextView:只能匹配输入的开始,只有一次匹配 MultiAutoCompleteTextVie ...
- 对restful的理解
最近在学习web api,从而涉及到了restful风格,我的理解是restful风格,每个链接都会对资源进行相应的操作(CRUD),如果一个链接不包含资源,则可能不符合restful风格,借此想请教 ...
- qt 工具下的dump工具导出文档出现异常解决方案
今天一直认为qt环境下的dumpcpp 和dumpdoc两个导出工具很好用,可以今天在导出MSChart组件的类方法文档时,虽然导出成功了,但是导出的结果却是令人失望.自己也不知道如何能够正确导出,就 ...
- 《从零开始做一个MEAN全栈项目》(2)
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 上一节简单介绍了什么是MEAN全栈项目,这一节将简要介绍三个内容:(1)一个通用的MEAN项目的技 ...
- iOS中的round ceil floorf表示的含义
round:如果参数是小数,则求本身的四舍五入. ceil:如果参数是小数,则求最小的整数但不小于本身. floor:如果参数是小数,则求最大的整数但不大于本身.
- vsftp 根据用户设置
#vsftpd.conf ###############pam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESlocal_root=/da ...
- Sublim Text3快捷键大全
Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格 ...