JavaWeb创建一个公共的servlet
JavaWeb创建一个公共的servlet,减去繁琐的doget、dopost,好好看好看学。
对于初学者来说,每次前端传数据过来就要新建一个类创建一个doget、dopost方法,其实铁柱兄在大学的时候也是这么玩的。后面铁柱兄开始认真了,就想着学习点容易的编程方式,其实说白了就是想偷懒。
新建一个Web项目,创建包、类。然后编写BaseServlet类。

package com.tiezhuxiong.base; import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet(name = "BaseServlet")
public class BaseServlet extends HttpServlet{ /**
* 创建一个公共的servlet类,所有从前端过来的请求都要走这个类
* 写一个公共的servlet,以后前端只需要把method送上来,
* 可以根据method送上来的值去找下面的方法名。减去了每次都dogetdopost方法
* 注:方法名一定要与method送上来的值相同。需要urlPatterns注解
* 如:提交的地址是test,则注解urlpatterns里要写/test
*
* 2019.12.3
*/
private static final long serialVersionUID = 1L; protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8");
resp.setContentType("html/text;charset=utf-8");
try {
// 获取前端传过来的method字段
String method = req.getParameter("method");
System.out.println(method);
// 获取到当前对象的字节码文件
Class clazz=this.getClass();
// 拿到字节码对象中的方法
Method clazzMethod = clazz.getMethod(method, HttpServletRequest.class, HttpServletResponse.class);
// 执行方法
clazzMethod.invoke(this,req,resp);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
然后开始编写LoginServlet类:
package com.tiezhuxiong.servlet; import java.io.IOException; import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.tiezhuxiong.base.BaseServlet; @WebServlet(name="LoginServlet",urlPatterns="/login")
public class LoginServlet extends BaseServlet{
/**
*
*/
private static final long serialVersionUID = 1L; public void login(HttpServletRequest req,HttpServletResponse resp) throws IOException {
String username=req.getParameter("username");
String pwd=req.getParameter("pwd");
System.out.println(username+pwd); if(username!=""&&pwd!=""){
resp.sendRedirect("https://www.cnblogs.com/");//接收到值的话就跳转到博客园首页
}else{
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("没有接收到数据");//没接收到的提示
} }
}
前端jsp界面:
<%@ 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>Insert title here</title>
</head>
<body>
<form action="login">
<input type="text" name="username">
<input type="text" name="pwd">
<input type="hidden" name="method" value="login"><!-- 后端根据value的值寻找方法 -->
<button>提交</button>
</form>
</body>
</html>
现在我们把项目跑起来看看





好了,本期的教程就到这里了,后续铁柱兄将继续给大家带来新的代码。谢谢观赏~
觉得有用的话,记得点个赞呦。
JavaWeb创建一个公共的servlet的更多相关文章
- 一个简单的servlet
1.创建一个自己的servlet文件,继承HttpServlet MyServlet.java package com.jmu.ccjoin.controller; import java.io.IO ...
- 用Eclipse 创建一个 简单的 Maven JavaWeb 项目
使用Maven 创建一个简单的 javaWeb 项目: 本篇属于 创建 JavaWeb 项目的第三篇: 建议阅读本篇之前 阅读 用 Eclipse 创建一个简单的web项目 ;本篇是这这篇文章的基础 ...
- 怎用不用工具创建一个javaWeb项目
整体步骤是: 1: 新建一个文件夹: 以项目名称命名 2:在新建的文件夹下再新建一个文件夹 WEB-INF (注意:大小写) 和 一个文件 index.jsp : index.jsp里面的代码: ...
- 创建一个servlet
servlet: 它是web应用程序的核心类,可以直接处理和相应用户请求,又或者将处理工作委托给应用中的其他部分的类. 让servlet继承HttpServlet的原因是: 1.HttpServlet ...
- 使用Eclipse EE(汉化版) 创建一个JavaWeb工程
第一步:打开eclipse ee,单击“文件”-->单击“新建”-->单击“动态Web项目”. 若没找到“动态Web项目”,单击“其他” -->在弹出的窗口中打开“Web”下拉菜单 ...
- 转:创建一个javaweb项目,以及导出war包
一.使用IDEA创建一个javaweb项目 1.File->New Project选择Web Application 1 2 然后填写好路径和项目名称,点击确定. 1 2 2.先看一下刚创建好的 ...
- 01_3_创建一个Servlet
01_3_创建一个Servlet 1.创建一个Servlet import java.io.IOException; import java.io.PrintWriter; import javax. ...
- 使用IDEA创建一个Servlet应用程序
使用IDEA创建一个Servlet应用程序 第一步:创建web应用 选择web application应用,之后填写项目名称等. 第二步:项目配置 在WEB-INF目录下创建两个文件夹:classes ...
- JavaWeb基础: 第一个Web应用(Servlet)
Servlet的生命周期 <servlet-mapping>和<servlet> Web应用的用户是通过指定浏览器中URL地址来访问Web应用提供的静态或者是动态资源,如果Se ...
随机推荐
- (转)深入解析TensorFlow中滑动平均模型与代码实现
本文链接:https://blog.csdn.net/m0_38106113/article/details/81542863 指数加权平均算法的原理 TensorFlow中的滑动平均模型使用的是滑动 ...
- python爬虫网页解析之lxml模块
08.06自我总结 python爬虫网页解析之lxml模块 一.模块的安装 windows系统下的安装: 方法一:pip3 install lxml 方法二:下载对应系统版本的wheel文件:http ...
- pecl安装和卸载示例
比如安装MongoDB扩展 命令行下输入: [#] /usr/local/php/bin/pecl install mongodb ......嗒吧嗒吧一大堆输出后 Build process com ...
- Supply Initial Data提供初始数据 (EF)
Open the Updater.cs (Updater.vb) file, located in the MySolution.Module project's Database Update fo ...
- [browser navigator],写了个检测游览器版本
前些天胃不舒服打吊针了,真得准时吃饭各种啊,然后就是懒,就没在复习了,这次复习的内容是navigator //未知效果 // console.log('浏览器的次要版本' + navigator.ap ...
- WebViewJavascriptBridge的详细使用
参考链接: https://www.jianshu.com/p/d12ec047ce52 https://www.jianshu.com/p/ba6358b1eec3 有demo:https://ww ...
- socket调试工具(Mac版)
基于Mac版的Socket测试功能,类似于PostMan的功能,对于Socket长链接的项目开发很有帮助. 本人也是通过好多渠道才找到这篇文章,与大家共享: 按照步骤一步一步来就对了~ 本文参考于:h ...
- MySQL数据库:注释及数据类型
注释 /* 多行注释 */ # 单行注释 -- 单行注释(注意:两个但横线后面必须加空格) 数据类型 1.整形 tinyint.smallint.mediumint.int.bigint 小整 ...
- ElasticSearch7 设置外网访问失败
elasticsearch外网访问9200端口失败,bootstrap checks failed,the default discovery settings are unsuitable for ...
- Putty 连接centOS7 超时问题
方法1: #vim /etc/ssh/sshd_config(添加或修改以下配置) ClientAliveInterval 60(每隔60秒给SSH客户端发送一次信号) ClientAliveCo ...