初入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. hdu 5051 找规律?+大trick

    http://acm.hdu.edu.cn/showproblem.php?pid=5051 打表找规律 据说是http://zh.wikipedia.org/wiki/%E6%9C%AC%E7%A6 ...

  2. Stringbuffer与substring

    1. Stringbuffer 有append()方法 Stringbuffer 其实是动态字符串数组 append()是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号 跟Stri ...

  3. iOS开发 关于iBeacon的一些记录

    最近时间一直在研究ibeacon所以把自己遇到的一些问题写下来做个笔记. 参考资料:https://github.com/nixzhu/dev-blog/blob/master/2014-04-23- ...

  4. 记一次autofac+dapper+mvc的框架搭建实践

    1,环境 .net framework4.7.2,Autofac,Autofac.Mvc5,sql server 2,动机 公司项目用的是ef,之前留下代码的大哥,到处using,代码没有分层,连复用 ...

  5. 背水一战 Windows 10 (40) - 控件(导航类): AppBar, CommandBar

    [源码下载] 背水一战 Windows 10 (40) - 控件(导航类): AppBar, CommandBar 作者:webabcd 介绍背水一战 Windows 10 之 控件(导航类) App ...

  6. 初识node.js(通过npm下载项目依赖的包的过程)

    一.初识node.js 简单的说Node.js 就是运行在服务器端的JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事 ...

  7. Django(框架、模板)

    day65 参考:https://www.cnblogs.com/liwenzhou/p/8296964.html Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间 ...

  8. sublime text3: markdown 安装及常用语法简介

    自己上传到 github 上的 README.rdm 文件内容显示没有“美化”,所有内容都挤在一块儿了,很不舒服. 原因是:github 的文档 README.rdm 文件使用 markdown 编辑 ...

  9. html-文件上传设置accept类型延时问题

       今天在做文件上传时,采用了jQuery的upload插件,使用过程中发现了一个很有意思也很头疼的问题. 上传按钮,第一次点击时瞬间就可以打开文件选择框,之后再点击则需要等待恐怖的8s以上. 百度 ...

  10. Shell - 简明Shell入门03 - 字符串(String)

    示例脚本及注释 #!/bin/bash str="Shell" str2="Hello $str !" str3="Hello ${str} !&qu ...