零基础学习java------33---------http协议,tomcat(其如何在eclipse上发布),注册案例
一. HTTP协议
https://www.cnblogs.com/vamei/archive/2013/05/11/3069788.html

二. tomcat---------->web服务器
1. tomcat是一款提供web服务的软件,其用处为:
(1)提供访问静态资源
(2)给用户提供了自定义业务逻辑的接口
2. 什么是web服务器?
遵循http协议,可以提供访问静态资源和动态资源的软件称为web'服务器()
浏览器请求服务器的流程图

3. tomcat软件的目录结构


startup.bat 双击启动
4. tomcat在eclipse发布
第一步:点击eclipse上的window--->Preferences--->Server--->runtime Enviroments---->Add,得到如下图
注意,此处可能会没有Server选项,解决办法-------->https://www.cnblogs.com/jj1106/p/11599239.html

选择自己的tomcat版本


点击apply and close即可完成发布

点击eclipse右上角的open Perspective,并在下拉框中选择java EE,如下图
注意,此处可能没有java EE的选项(没安装java ee的插件),解决办法:https://www.cnblogs.com/jj1106/p/11600948.html

这时候,下面就会出现Servers选项(若没有的话windows ---> show view - > servers),如下图



5. 创建web项目
(1)new ---> dynamic web project -- >


(2)将项目部署在tomcat中

(2)部署完项目后就启动项目

访问此web服务器:http://localhost:8080/day12/demo1.html
即可得到demo1.html中的文本内容
三. 注册案例
1. 前端注册页面(写在WebCont中):
访问时:localhost:8080/项目名/reister.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<h1>xxx注册中心</h1>
<form action="Register" method="post">
姓名:<input type="text" name="username" /></br></br>
昵称:<input type="text" name="nickname" /></br></br>
密码:<input type="password" name="password" /></br></br>
手机号:<input type="text" name="phonenumber" /></br></br>
邮箱:<input type="text" name="mail" /></br></br>
<input type="submit" value="注册"/>
</form>>
</body>
</html>
2. 后台部分:

(1)admin
Register
创建的时候是选择servlet
public class Register extends HttpServlet {
private static final long serialVersionUID = 1L;
UserService userService = new UserServiceImpl();
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
try {
// 获取前台发送的参数
String username = request.getParameter("username");
String nickname = request.getParameter("nickname");
String password = request.getParameter("password");
String phonenumber = request.getParameter("phonenumber");
String mail = request.getParameter("mail");
System.out.println(username);
// User对象去接受这些参数
User user = new User(username, nickname, password, phonenumber, mail);
boolean b = userService.register(user);
if(b) {
response.sendRedirect("/day12/success.html");
}else {
response.sendRedirect("/day12/register.html");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
(2)service
UserService接口
public interface UserService {
// 注册
public boolean register(User user) throws Exception;
}
UserService接口实现类(UserServiceImpl)
public class UserServiceImpl implements UserService{
/**
* 注册实现
*/
@Override
public boolean register(User user) throws Exception {
boolean flag = false;
UserDao userDao = new UserDaoImpl();
int i = userDao.insertUserToDb(user);
if(i>0) {
flag = true;
}
return flag;
}
}
(3)pojo
User(根据从前端接收的数据来确定属性)
public class User {
private String username;
private String nickname;
private String password;
private String phonenumber;
private String email;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhonenumber() {
return phonenumber;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User(String username, String nickname, String password, String phonenumber, String email) {
super();
this.username = username;
this.nickname = nickname;
this.password = password;
this.phonenumber = phonenumber;
this.email = email;
}
@Override
public String toString() {
return "User [username=" + username + ", nickname=" + nickname + ", password=" + password + ", phonenumber="
+ phonenumber + ", email=" + email + "]";
}
}
(4)dao
此处需要导一些jar包,如下(不需要build path)

UserDao接口
public interface UserDao {
/**
* 往数据库中添加用户
* @param user
* @return
*/
public int insertUserToDb(User user) throws Exception;
}
UserDao实现类
public class UserDaoImpl implements UserDao{
static QueryRunner runner;
static {
// 获取数据库池对象
ComboPooledDataSource dataSource = new ComboPooledDataSource();
runner = new QueryRunner(dataSource);
}
@Override
public int insertUserToDb(User user) {
int in = 0;
try {
String sql = "insert into user values(null,?,?,?,?,?)";
in = runner.update(sql,user.getUsername(),user.getNickname(),user.getPassword(),user.getPhonenumber(),user.getEmail());
} catch (Exception e) {
in = -1;
}
return in;
}
}
零基础学习java------33---------http协议,tomcat(其如何在eclipse上发布),注册案例的更多相关文章
- 音乐出身的妹纸,零基础学习JAVA靠谱么
问:表示音乐出身的妹纸一枚 某一天突然觉得身边认识的是一群程序员 突然想 要不要也去试试... 众好友都觉得我该去做个老师,可是我怕我会误人子弟,祸害祖国下一代..... 要不要 要不要 学Ja ...
- 总结了零基础学习Java编程语言的几个基础知识要点
很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面 初学者先弄清这 ...
- Android零基础入门第33节:Android事件处理概述
原文:Android零基础入门第33节:Android事件处理概述 通过对Android基本组件的学习,也有接触少部分Android的事件处理,比如按钮的点击事件.选框的状态切换事件. 一.Andro ...
- Salesforce 集成篇零基础学习(一)Connected App
本篇参考: https://zhuanlan.zhihu.com/p/89020647 https://trailhead.salesforce.com/content/learn/modules/c ...
- 【零基础学习iOS开发】【转载】
原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...
- 李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇
从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...
- 零基础学习hadoop到上手工作线路指导
零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...
- 【零基础学习iOS开发】【01-前言】01-开篇
本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过I ...
- 零基础学习iOS开发
零基础学习iOS开发不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍了函数的定义和使 ...
随机推荐
- 求1+2+3...+n 牛客网 剑指Offer
求1+2+3...+n 牛客网 剑指Offer 题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). ...
- cf16C Monitor(额,,,,水数学,,)
题意: 一块镜子长宽是a*b.现在要调整(切割)成x:y的比例. 问调整完的最大面积是多少. 思路: 先将x,y弄成最简比例,然后放大到不超过min(a,b)即可. 代码: ll a,b,x,y; l ...
- 接口自动化 - pytest-fixture -scope作用范围
接口自动化-pytest中的fixture - scope 介绍 fixture文章中介绍的比较少,同学们可以去搜索下fixture的详解或者去看看源码 ...
- 优客源创会 西安站 西邮Linux兴趣小组
2016年5月19日晚7:00,优客源创会西安站在西安邮电大学长安校区东区教学楼FF305如期举行,西安邮电大学计算机学院教授.西邮Linux兴趣小组指导老师陈莉君.王小银老师和来自开源中国的周凯先生 ...
- 『学了就忘』Linux基础命令 — 32、压缩和解压缩相关命令
目录 1.".zip"格式压缩 2.".gz"格式压缩 3.".bz2"格式压缩 4.".tar"格式打包 5.打包和压 ...
- application.properties文件配置
# 服务端口 server.port=8001 # 服务名 spring.application.name=service-edu # 环境设置:dev.test.prod spring.profil ...
- Linux可执行文件格式-ELF结构详解
表1. ELF文件类型分类 ELF文件类型 说明 实例 Relocatable File 可重定位文件 未链接之前的ELF文件,可用于链接可执行文件或静态链接库 Linux下的".o&quo ...
- 测试平台系列(79) 编写Redis配置功能(下)
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们提出了优化Dao ...
- [loj2494]寻宝游戏
将$n+1$个数字(还有0)标号为$[0,n]$,那么定义$a_{i,j}$表示第j个数上第i位上的值,如果第$i-1$个数与第$i$个数之间的运算符为与,那么令$b_{i}=1$,否则$b_{i}= ...
- 对象池模式(Object Pool Pattern)
本文节选自<设计模式就该这样学> 1 对象池模式的定义 对象池模式(Object Pool Pattern),是创建型设计模式的一种,将对象预先创建并初始化后放入对象池中,对象提供者就能利 ...