初入Java后端之Servlet

后端 Servlet 

什么是Servlet?

Servlet实际上是一个按照Servlet规范写的Java类。是运行在Web服务端的Java应用程序。与Java程序的区别是,它里面封装了对Http请求的处理。

功能

Servlet主要是对Http请求进行相应的处理,生成动态的Web内容。

实现

原理图

至于Servlet的细节原理和优点,先暂时不说,直接上代码

总的来说,后端主要是处理前段发送过来的请求,那么最常见的请求便是post请求和get请求。

Servlet处理Get请求

前段Get请求表单,创建一个1.jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>初入Servlet</title>
</head>
<body> <%--使用Get请求,请求的url为/test--%>
<form method="get" action="/test">
<label>账号</label>
<input type="text" name="name" />
<label>密码</label>
<input type="password" name="pwd" />
</form>
</body>
</html>

页面样式:

后端处理Get请求

package com.server;

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 java.io.IOException;
import java.io.PrintWriter; //urlPatterns = {"/test"} 代表请求的路由
@WebServlet(name = "test",urlPatterns = {"/test"})
public class Test extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } //处理get请求的函数
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获得账号
String name = request.getParameter("name");
//获得账号
String pwd = request.getParameter("pwd");
//设置响应编码为utf-8
response.setCharacterEncoding("utf-8");
//告知浏览器编码方式; 浏览器默认编码是GBK
response.setHeader("Content-type", "text/html;charset=UTF-8"); PrintWriter writer = response.getWriter();
writer.print("账号是"+name+","+"密码是"+pwd);
}
}

结果:

后端处理Post请求:

前端只要将method="get"==>method="post"

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>初入Servlet</title>
</head>
<body> <%--使用Get请求,请求的url为/test--%>
<form method="post" action="/test">
<label>账号</label>
<input type="text" name="name" />
<label>密码</label>
<input type="password" name="pwd" />
<input type="submit" value="登录"/> </form>
</body>
</html>

后端的请求与doGet一样,所以可以在doPost请求中调用doGet请求,代码如下

package com.server;

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 java.io.IOException;
import java.io.PrintWriter; //urlPatterns = {"/test"} 代表请求的路由
@WebServlet(name = "test",urlPatterns = {"/test"})
public class Test extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//使用doGet函数处理post请求
this.doGet(request,response);
} //处理get请求的函数
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获得账号
String name = request.getParameter("name");
//获得账号
String pwd = request.getParameter("pwd");
//设置响应编码为utf-8
response.setCharacterEncoding("utf-8");
//告知浏览器编码方式; 浏览器默认编码是GBK
response.setHeader("Content-type", "text/html;charset=UTF-8"); PrintWriter writer = response.getWriter();
writer.print("账号是"+name+","+"密码是"+pwd);
}
}

这次是对Java Servlet简单使用的介绍,下次会介绍更多的关于Servlet的使用

初入Java后端之Servlet的更多相关文章

  1. 初入Java坑,然后又入产品坑

    之前工作了一年,从事Java相关工作,不小心深得领导器重,跑去演讲.写文档.与客户沟通等,最后应公司需要,转往产品坑,坑坑相连,何时逃坑. 最近一直在学习产品经理必备工具Axure,发现这真是一个神奇 ...

  2. 记录:初入Java环境部署踩坑

    1.在部署环境之前,先确定大佬们用的哪几种软件,然后依次下载,安装,IDEA, JDK, Tomcat, Maven.    什么是JDK?    JDK是 Java 语言的软件开发工具包,主要用于移 ...

  3. 初入爬虫(java)

    public class CrawlerUtil { public static void main(String [] args) throws IOException { // 创建默认的http ...

  4. java后端程序员1年工作经验总结

    java后端1年经验和技术总结(1) 1.引言 毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为 ...

  5. 各大公司java后端开发面试题

    各大公司Java后端开发面试题总结 ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离 ...

  6. 分享一些 Java 后端的个人干货

    学习 Java 也有了不少时间,入 Java 后台的坑也有了一段时日.这段时间里,听过许多前辈的经验与分享,也看过许多大佬的文章和作品.找了个时间整理和总结了一下我个人到目前为止一路以来的听到看到或者 ...

  7. Java生鲜电商平台-Java后端生成Token架构与设计详解

    Java生鲜电商平台-Java后端生成Token架构与设计详解 目的:Java开源生鲜电商平台-Java后端生成Token目的是为了用于校验客户端,防止重复提交. 技术选型:用开源的JWT架构. 1. ...

  8. Scala初入

    何为Scala物 Scala为基于JVM虚拟机中的面向对象与函数式编程思想并且完全兼容Java的混合编程语言,可以是Scala与Java是同根同源的,既然Scala与JAVA都是基于JVM之上的编程语 ...

  9. 从app上传图片到php,再上传到java后端服务器的方法一览

    在现在的网络开发中,上传图片类的需求实在是太普通不过了,但是对于怎么样做到上传图片,对于刚开始建立项目的时候,还是有点不知所措的.也许有幸,我们做的项目是之前已经有人写过类似的用例了,那么我们只需要依 ...

随机推荐

  1. jdbc的配置(更新中)

    MySQL的 JDBC URL 格式 for  Connector/J 如下例: 格式如下: jdbc:mysql://[host][,failoverhost...][:port]/[databas ...

  2. python之函数2

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...

  3. 转:iOS9的新特性以及适配方案

    2015年9月8日,苹果宣布iOS 9操作系统的正式版在太平洋时间9月16日正式推出,北京时间9月17日凌晨1点推送. 新的iOS 9系统比iOS8更稳定,功能更全面,而且还更加开放.iOS 9加入了 ...

  4. 工作随笔——elasticsearch数据冷热分离、数据冷备

    概述: 适合日志类型的数据存储方案.即当日数据写入,历史数据只读. 节省部分硬件成本.热数据采用更好的硬件. 环境: 已有6个ES节点,使用docker-compose方式搭建. es1:master ...

  5. VIM 实现tab标签页及分屏,切换命令

    1,在一个窗口中,VIM 的小tab标签页命令:   :tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab :tabc       关闭当前的tab ...

  6. MVC+Nhibernate+spring.net(一)

    所用数据库是我之前所写的Nhibernate入门篇的数据库https://www.cnblogs.com/pandorabox/p/PandoraBox.html 第一步:创建一个mvc项目 第二步: ...

  7. JQuery Mobile - 导航栏选中状态代码

    class="ui-btn-active" 参考: https://wizardforcel.gitbooks.io/w3school-jqmobile/content/8.htm ...

  8. 网易免费企业邮箱Foxmail设置方法

    网易免费企业邮箱Foxmail7.0设置方法 第一步:启动 Foxmail 邮件客户端,点击工具->账号管理,弹出如下页面. 点击新建,如下: 填写自己企业邮箱账号,然后下一步,邮箱类型选择PO ...

  9. ASP.NET Core 2.0 多应用实现Cookie共享

    前言 .NET Core 2.0 发布之后,在Authentication中间件部分,相关API有不少改动(官方文档),本文主要讲的就是实现应用Cookie共享,对Cookie中间件使用不了解的可以去 ...

  10. zookeeper安装小记

    做了5个节点,但是查看状态的时候,发现 ./zkServer.sh statusJMX enabled by defaultUsing config: /opt/zookeeper/bin/../co ...