服务器小程序servlet的使用

servlet的创建使用

  • 一,三种创建方式
    • 1.1 实现servlet接口
    • 1.2 继承GenericServlet
    • 1.3 继承HttpServlet
  • 二,servlet使用
    • 2.1 web.xml文件的配置
      • 2.1.1 创建xml文件
      • 2.1.2 手写web.xml文件
    • 2.2 在8080端口下访问
      • 2.2.1 servlet的生命周期

servlet是服务器小程序。是个Java类,用来向客户端输出数据。
环境:[idea: myeclipse2014, server: tomcat8.5.5]

一,三种创建方式

1.1 实现servlet接口

package servlet;import java.io.IOException;import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;// 实现Servlet接口
public class MyServlet1 implements Servlet {public MyServlet1() {System.out.println("myservlet1出生啦");}public void destroy() {System.out.println("servlet销毁");}public ServletConfig getServletConfig() {return null;}public String getServletInfo() {return null;}public void init(ServletConfig cfg) throws ServletException {System.out.println("初始化了servlet, 配置信息:" + cfg);}public void service(ServletRequest request, ServletResponse response)throws ServletException, IOException {System.out.println("我可以服务");}
}

1.2 继承GenericServlet

package servlet;import java.io.IOException;import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;public class MyServlet2 extends GenericServlet {private static final long serialVersionUID = 5936931940945509793L;public void service(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {System.out.println("servlet2服务开始了");}}

1.3 继承HttpServlet

package servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyServlet3 extends HttpServlet {private static final long serialVersionUID = -3898454989640734357L;// get提交 如a标签 地址栏看得见的如 csdn.net/md?articleId=106303944protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("get");doPost(req, resp);}// post提交 表单post的提交protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("post");}
}

ps, 一般继承自HttpServlet,可重写doGet doPost 或者doService, 懒人可写doService 它是万能滴!

二,servlet使用

2.1 web.xml文件的配置

2.1.1 创建xml文件

点击项目右击

之后就会出现web.xml

内容:这下面的东西在地址栏,输入项目名回车,默认访问下面的页面

比如: http://127.0.0.1:8080/Jsp05/

2.1.2 手写web.xml文件

  • 一个servlet对应一个类,和映射!
  • xml文件改变后,要重新部署项目,否则报错404!
<!-- servlet的名称,类,以MyServlet1举例 --><servlet><servlet-name>MyServlet1</servlet-name> <!-- servlet 名--><servlet-class>servlet.MyServlet1</servlet-class> <!-- servlet 类 --></servlet><servlet-mapping> <!-- 映射 --><servlet-name>MyServlet1</servlet-name><url-pattern>/MyServlet1</url-pattern> <!-- 客户端访问路径 --></servlet-mapping>

2.2 在8080端口下访问

  • 在这里就访问MyServlet1了, 看它的生命周期

  • 在浏览器输入 http://127.0.0.1:8080/Jsp05/MyServlet1,下面是控制台打印

myservlet1出生啦
初始化了servlet, 配置信息:org.apache.catalina.core.StandardWrapperFacade@16850ac6
我可以服务
  • 再次访问,刷新enter键

  • 又执行了一次service方法!

  • 当我关闭服务器!servlet销毁!

2.2.1 servlet的生命周期

出生 -> 初始化 -> (多次)服务(客户端可访问) -> 销毁
默认访问优先级,代码执行的优先级 
service > get > post

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hadoop MultipleInputs fails with ClassCastException (get fileName)

来自&#xff1a;http://stackoverflow.com/questions/11130145/hadoop-multipleinputs-fails-with-classcastexception Following up on my comment, the Javadocs for TaggedInputSplit confirms that you are probably wrongly casting the input split to a FileSplit: /**…

自己常用的Linux命令总结

原则&#xff1a;自己使用过的&#xff0c;不易记忆的&#xff0c;功能强大的 grep 名称意义&#xff1a;全称Global Regular Expression Print&#xff0c;表示全局正则表达式是一个强大的文本搜索工具&#xff0c;采用正则匹配命令格式&#xff1a;grep [options] files O…

XSS与CSRF两种跨站攻击比较

XSS&#xff1a;跨站脚本&#xff08;Cross-site scripting&#xff09; CSRF&#xff1a;跨站请求伪造&#xff08;Cross-site request forgery&#xff09; 在那个年代&#xff0c;大家一般用拼接字符串的方式来构造动态SQL 语句创建应用&#xff0c;于是SQL 注入成了很流行的…

褚时健:现在的年轻人太急了,我快90了还在摸爬滚打

转自&#xff1a;http://news.163.com/17/0715/08/CPCF0D6R00018AOR.html &#xff08;本人说明&#xff1a;这篇访谈太“鸡汤”了&#xff0c;我读了好几遍&#xff0c;里面精彩的部分我用红字标出来了&#xff0c;感觉褚时健老前辈的精神和做事的态度方法真的值得学习&#…

Java日期格式化SimpleDateFormat

package test;import java.text.SimpleDateFormat; import java.util.Date;public class TestDate {public static void main(String[] args) {// 大写的HH是24小时 小写的是12小时SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d null;…

VS或编译的时候不生成Release文件夹

今天在编译第三方类的时候&#xff0c;总是发布的时候报没有第三方类库的的Release版本 解决方案&#xff1a; Build>Configuration Manager>Release 编译》配置管理》选择发布版本 再编译就有了转载于:https://www.cnblogs.com/flyfish2012/p/3728516.html

el表达式,c标签的使用

el表达式的使用 学生类 public class Student {int id;String name;String sex;String birth;public Student() {}public Student(int id, String name, String sex, String birth) {super();this.id id;this.name name;this.sex sex;this.birth birth;}// el 表达式取实…

conda虚拟环境中安装ipython

问题&#xff1a;今天安装了tensorflow&#xff0c;启动ipython竟然提示如下&#xff1a; In [1]: import tensorflow as tf --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recen…

Web前端行业的了解

即将从事Web前端的工作的 先对即将从事的行业有个了解。 Web前端发展史&#xff1a; 第一个网页诞生于90年代初&#xff0c;早期的网页除了一些小图片和毫无布局可言的标题段落&#xff0c;其全由文字构成。然而随着时代的进步&#xff0c;互联网的 不断发展&#xff0c;接下来…

使用session保持登录状态,cookie保存用户账号密码

session保存登录状态与cookie保存账号密码1. session维持登录状态1.1 代码实现2. cookie保存账号密码2.1 什么是cookie2.2 cookie记住账号密码1. session维持登录状态 利用session的生命周期实现 1.1 代码实现 login页面表单部分 <form action"judgeLoginSession&qu…

用conda安装虚拟的R环境

R语言能不能像python一样创建虚拟环境&#xff0c;今天探索了这个问题&#xff0c;用如下方式。 1、建立一个python虚拟环境 conda create -n R_env python3.7 2、在R_env中安装R语言 conda install R 3、在R_env中安装Rstudio conda install rstudio 4、启动Rstudio成功…

js表单验证,给出友好的提示

js验证表单 注意&#xff1a; 只做非空验证, 只是个小demo学习思想&#xff0c;onblur onfocus onsubmit的使用&#xff0c;给出友好提示网上有很多有良好&#xff0c;强大的控件&#xff0c;用于用户输入 代码实现 js代码 <script>function check_form(form) {// 得到f…

conda安装特定版本的包

conda search python /*python 3.3.1 0 anaconda/pkgs/free*/ conda install python3.3.1 即是安装了python3.3.1

项目开发问题

开发过程中才用Gearman做后台计算&#xff0c;node做socket连接服务器和数据传输及基本验证&#xff0c;Gearman通过接收Action和参数后将相应的结果回调给node&#xff1b;node负责接收前端发送的action和参数给Gearman&#xff0c;并将Gearman计算的结果推送给前端&#xff0…

注册demo,使用jQuery异步验证账号是否存在

功能 jQuery验证账号是否存在form表单提交判断&#xff0c;失焦判断 界面 Ajax代码&#xff0c;验证用户rye1是否存在 function check_UserId() {$userId $("#userId").val();$.post("checkUserId","userId" $userId,function (result) { // 异…

虚拟机的网络连接模式

本文参考文章如下&#xff0c;感谢原作者&#xff1a; 《虚拟机的桥接模式和NAT模式》 https://blog.csdn.net/qq_40198004/article/details/89785806 1、桥接模式 桥接模式:直接连接物理网络&#xff0c;也就是连的你交换机的网络和你主机的IP在一个网段上&#xff0c;将虚拟…

自考感悟,话谈备忘录模式

引言&#xff1a; 2014年4月20号上午11:30&#xff0c;正式结束了自己的自学考试&#xff01;考完之后瞬间感觉放松了开来&#xff01;全身无力则是自己20号下午的唯一感受。放松了半天&#xff0c;今天回归正轨&#xff01;又回到了和生活息息相关的设计模式上来&#xff01;今…

小白教你用Java生成验证码

验证码生成效果一&#xff0c;生成验证码二&#xff0c;页面收到验证码三&#xff0c;验证验证码是否填写正确效果 点击验证码可切换 给出提示 一&#xff0c;生成验证码 package servlet;import java.io.IOException;import javax.servlet.ServletException; import jav…

modbus rtu 协议转DLT645-2007和DLT645-1997电表协议转换器定制,

现场会碰到现场数据为Modbus协议&#xff0c;但是后台系统为DLT645协议系统&#xff0c;本模块支持将工业ModbusRtu协议转换为电表国标协议DLT645协议&#xff0c;支持1997和2007俩种标准&#xff0c;只需要进行简单的配置&#xff0c;就可以实现Modbus 协议转DLT645协议&#…