文章目录

  • 1. 前言
  • 2. 创建javaweb项目
  • 3. 创建Server
  • 4. 解决中文乱码问题
  • 5. 响应后台数据

目录
Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。


所有文章源码已整体打包上传至github,求星星!

1. 前言

接着第一篇用html完成了注册页面,第二篇,我们来完成后台数据处理,需要用的有Eclipse,tomcat,mysql数据库,还有云服务器(如果需要外部访问,可以购买一台云服务器,选择最低配置就好,我用的是腾讯云,使用代金券白嫖了四个月,可以通过下面二维码白嫖代金券。)

若没有Eclipse,这是博主之前写的Ecplise下载教程

若没有tomcat,点击下载tomcat7下载

若想买服务器,不如看看这个云服务器代金券

若要使用本地数据库不如看看这个MySQL数据库学习·如何安装SQL数据库和连接Navicat Premium

若要在服务器安装数据库,不如看看这个腾讯云云服务器Centos系统安装MySQL数据库详细教程

这里给大家提个醒,若JDK是1.7 ,tomcat,mysql,centos建议都用7的版本。不要问为什么,博主也是趟过坑的人!!!!


2. 创建javaweb项目

File->New->other->Web->Dynamic Web Project

第一个红框框选择你刚下载好的tomcat版本,还有路径。

第二个红框框有个注意点,现在一般用的是3.0,采用注解的方式,而博主的教程是2.5版本,需要配置web.xml,如果是初学者,建议选择2.5,有助于学习,我也将以2.5版本为例。

第三个红框框可以设置一些内容的版本,这里将java设置为1.7版本。

然后一直下一步,完成,如图。

我们点击下面的servers服务,点击蓝色文字,再次选择tomcat版本,并将项目添加,完成。如果下面没有servers选项,可在window->show View下找到servers,添加即可。

分别创建一个js文件夹,一个img文件夹,一个css文件夹(右键Webcontent->New->folder),然后将上篇写过的代码拿过来,可以直接将文件拖进Webcontent目录下,html文件直接拖到Webcontent下就好,哦,差点忘了,eclipse的默认字体大小极其不友好,建议大家将字体改成18,在Window->proferences搜索font,选择Colors and Fonts,选择Basic下面的Text font,将字体大小设置为你喜欢的值(这里建议18)。

创建好之后如图,至此,我们将昨天用HBuilder X写的内容全部移植到了Eclipse里面,


3. 创建Server

右击项目,New->other->Web->Servlet,什么是Servlet,其实就是一个java文件,然后通过网页去调用这个java文件处理业务逻辑,类似于两个java文件互相调用,只不过更加复杂而已。

创建好的java文件,默认有两个函数,一个是GET,一个是POST,这个是干什么的呢,GET和POST是HTTP请求的两种基本方法,要说它们的区别,最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可以看到有些链接后面有?user=xxxx&id=xxxx,这种就是GET请求方法。

4. 解决中文乱码问题

每一个学过javaweb的人应该都知道GET和POST提交乱码的问题,业务逻辑不可避免要传递中文数据,请在两个函数中添加如下代码,同时将Workspace下面的Text file encoding默认GBK改为utf-8(Window->Preferences->Workspace),可解决中文乱码问题。

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");
}

除此自外,还可以创建Filter(过滤器),来处理乱码问题,有兴趣可以了解下,你不要问我为什么不用这个,因为我不会。


5. 响应后台数据

好了好了,我知道你已经等不及了,想要马上知道如何与前端交换数据。

一般情况下,我们都会使用表单提交的方式,向servlet发送数据,比如我们有一个表单

<form action="FdogMaven" method="post"><input tyle="text" placeholder="昵称"/><input type="submit" value="提交" />
</form>

action属性表示要提交到哪个servlet,比如刚才我创建的servlet叫FdogMaven,这里action就写FdogMaven,method属性表示请求方式,这里选择POST。

然后我们在对应的FdogMaven里面的POST函数写一个处理语句:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");    response.getWriter().append("我是花狗");doGet(request, response);}

然后运行它,点击提交按钮,将跳转至FdogMaven,并显示我是花狗。

好了,学到了这里,再来看看如何在文本框输入内容,在后台显示。

在文本框中加一个name属性,值为username。

<form action="FdogMaven" method="post"><input tyle="text" name="username" placeholder="昵称"/><input type="submit" value="提交" />
</form>

在后台来接收这个值

String username="";
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");    username = request.getParameter("username");response.getWriter().append("你输入的昵称是:"+username);doGet(request, response);}

效果如下:

再回到我们的注册页面,你可能已经有疑问,点击发送短信之后,页面并没有发生跳转,但是后台已经将前台的数据处理完毕,并不像上面的这种,如何做到即执行了servlet,又不执行跳转呢?

第一种解决方法是使用转发,让页面跳转到servlet然后保存数据,再跳转回来,将保存的数据显示,代码如下:

String username="";
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");    username = request.getParameter("username");response.getWriter().append("你输入的昵称是:"+username);doGet(request, response);request.setAttribute("username", username);  //保存昵称request.getRequestDispatcher("index.jsp").forward(request,response);//注册页面}

servlet返回的值,前端如何接收呢,这时就需要用到jsp了,需要将我们的html文件改成jsp文件,添加第一行代码,然后在文本框添加value值:

<%@page contentType="text/html;charset=utf-8"%>
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>Fdog注册</title></head><body><form action="AuthCode" name="form" method="post"><input tyle="text" id="userName" name="username" placeholder="昵称" value='<%=request.getParameter("username")==null?"":request.getParameter("username")%>'/><input type="submit" value="提交" /></form></body>
</html>

效果如下:

第二种技术叫Ajax(异步获取请求),也是我推荐的一种,使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。

例如图中的发送短信按钮,转发虽然可以携带数据返回,但是如果首页有一些数据不需要在发送验证码的时候处理,则更应该是Ajax。

为按钮添加一个点击事件

<input type="button" id="codebutton" value="获取短信验证码" onclick="codeclick(this)"/>

编写对应js

var xmlhttp;
function codeclick(thisBtn) {if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=new XMLHttpRequest();}else{// code for IE6, IE5xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}xmlhttp.open("POST","FdogMaven",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");//xmlhttp.send("fname=Bill&lname=Gates");//如果是GET请求,可在send添加参数xmlhttp.send();
}

好了,这篇就写到这里,下一篇的内容是如何生成随机数,如何连接数据库,如何发送短信(免费的),如何部署到服务器让其他人访问并注册。

如果需要源码可以添加我的微信群获取(官方群)

如果觉得好的,还可以给我来个一键三连哦!

Fdog系列(二):html写完注册页面之后怎么办,用java写后台响应呀。相关推荐

  1. 如何用spring boot写一个注册页面

    环境准备: java集成开发环境:IDEA 数据库:Mysql Maven 最好在安装有个navicat(数据库可视化界面) 安装好上述几个软件后 总结下:五步 1.创建新的工程 2.创建建appli ...

  2. 小米笔记本适合计算机专业,一天写完硕士毕业论文_论文一天写5000可能吗

    明早八点我来更新一下论文进度感谢姐妹们的关心---我写完啦!!查重率12% 果然ddl才是第一生产力但还是太狼「原创」1天写完毕业论文栏目收集14988篇免费原创论文范文助您写作与发表!相关专业优秀学 ...

  3. 关于注册页面上传头像并在后台处理数据

    之前在做注册页面头像上传时,发现直接通过request.getParameter方法获取到的值全是null,后面经过查找资料找出了原因,因为在普通注册页面的基础上加入了上传头像的功能,所以需要在for ...

  4. java makefile jar包_java makefile学习实践(编译的javac命令写在makefile中,运行命令java写在shell脚本中)...

    学习makefile教程,ubuntu中文网 1.写一个简单的java项目,不需要外部jar,用的简单的 importjava.util.ArrayList;是可以从CLASSPATH环境变量中找到的 ...

  5. 用java写2468游戏_关于第一次用java写小游戏(贪吃蛇)的体会记录

    作为一只菜鸡,对于编程的世界还一无所知,但是感觉应该要写点实用的东西.突然发现好像贪吃蛇应该能写出来(那种几乎没有用户界面的),于是就开始了. 1.关于对简单的动画呈现的资料准备 因为只有一些捉襟见肘 ...

  6. 用JAVA写一个古诗生成器_简简单单用java写一个营销号话术生成器

    废话不多讲直接上代码import java.util.Scanner; public class sb { public static void main(String[] args) { Strin ...

  7. java写病毒程序代码_一个用JAVA写的清除EXE病毒文件的程序(转)

    Clear.java 这是一个主类,主要是负责运行程序和参数检查,不是核心 程序代码: import java.io.*; public class Clear{ public static void ...

  8. Fdog系列(四):使用Qt框架模仿QQ实现登录界面,界面篇。

    文章目录 一. 前言 二. 正文 1. 创建窗口,添加基本组件 2. 自定义标题,隐藏任务栏标题,实现系统托盘显示 3. 美化主界面,文本框的奇思妙想 4. 实现背景阴影 一. 前言 Fdog系列已写 ...

  9. Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。

    文章目录 一.前言 1. 基础布局 2. 自动切换图片 3. 添加内容 4. 自动缩放,控件的显示和隐藏 5.响应用户输入操作 所有文章源码已整体打包上传至github,求星星! 一.前言 两年的大学 ...

最新文章

  1. selenium 定制启动 chrome 的选项
  2. 一文读懂tomcat组件--一个web服务器的架构演化史
  3. c2750服务器性能,国外披露“Avoton”凌动C2750能耗测试
  4. css学习_cs3s旋转的图片
  5. oracle中srv添加监听服务,Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务...
  6. Python对DICOM图像进行阈值分割
  7. vivado 如何创建工程模式_用Tcl定制Vivado设计实现流程
  8. [JNI] 开发实例(2) 编译libwebsocket,封装jni函数,搭建IM通信基础服务
  9. 目标追踪(一)环境搭建
  10. 通过网络使用YAML
  11. Mblog 系统配置
  12. 使用 crictl 对 Kubernetes 节点进行调试
  13. 昆明计算机设计学院官网,文山高中考不上有什么出路
  14. java实现倒酒的问题_倒酒问题
  15. 怎样修复win7无线服务器,win7开启无线服务器
  16. 树状数组 区间加 区间求和_EXCEL统计区间个数的专属函数
  17. 《代码大全》到底讲什么?
  18. 美通社企业新闻汇总 | 2019.3.5 | 天猫目标今年增1000个美妆品牌;特步设合资公司引进美国迈乐及圣康尼...
  19. 现代数学的基本概念:数学是一门研究数量、结构、变化以及空间等基本概念和方法的学科,数学的本质在于研究数学对象之间的关系。
  20. 只有不断的学习才能收获成长

热门文章

  1. c语言程序设计杜红燕,C语言习题集与实验指导 教学课件 伍鹏、杜红、王圆妹、邓绍金 第4章 选择结构程序设计.pdf...
  2. 2021年全球与中国水产养殖设备行业市场规模及发展前景分析
  3. C语言-函数-递归数列
  4. 计算机会考咋查成绩,我忘记会考号了 怎么查询成绩
  5. 实现倒计时/正计时功能 moment
  6. 图片的 base64 编码
  7. 2007年高考信息题
  8. 圆滑描边 css,【CSS 学习】CSS 文本描边效果
  9. Java网络编程_TCP编程以及UDP编程
  10. 计算机看个人还是看学校,学姐知道 | 学姐,男朋友是学校发还是自己带?