Web开发学习之路--Eclipse+Tomcat+mysql之初体验
学习了一段时间android,正好要用到android和服务器之间的交互,既然要学习android,那么就涉猎下服务器端的开发了,以前学过php,用thinkphp很快可以搭建起来,但是android是java的,web用java来写不是更好,主要实现聊天的话得需要socket长连接,用php不好整。既然要学习Web开发,那最开始的搭建服务器最最根本了,这里用了eclipse+tomcat+mysql来实现之。
首先下载eclipse了,这里我用的4.4.1的版本,tomcat7.0,至于这个eclipse+tomcat的环境的话相信网上的资料已经非常的多了,这里就不介绍了。关于mysql可以参考这里:http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html。特别注意的是,下载安装好了之后会有弹出来临时的密码,这个需要记住的。
这里假设已经安装搭建好了环境了。启动eclipse,然后新建一个tomcat的server:
接着next
这里选择了tomcat7.0,然后按照要求来,因为我已经建立了一个dynamic的web,所以添加到server中就好了。
好了,这样server就建立好了,接着我们创建一个工程:
按照步骤一步一步来
已经创建了hello,所以这里创建hello1,接着下一步:
自动添加web.xml用来配置。接着把hello1添加到server中去,通过Add and Remove,如下:
接着new一个index.jsp文件:
然后添加代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hello</title>
</head>
<body>
这是我们第2个web项目,哈哈
</body>
</html>
运行看下效果:
好了,基本上环境都搭建好了。
先在mysql 数据库里面新建下表:一般mysql安装在/usr/local/mysql/bin下,cd 到该目录下,执行命令:
./mysql -u root -p
进入到mysql中,执行show databases;查看当前的database,新建test数据库:
,
接着我们新建一个表Student:
然后查看下表建立的没有,执行show tables;
可以发现里面有了student表。 接着插入两个student的信息;
再查看下表中的信息:
可以发现已经有了两个student的信息了。
然后参考了网上的代码,简单实现下信息的增删改查,并解决了中文乱码的问题:
首先新建Student类:
package com.example;
public class Student {
private String sid;
private String name;
private String age;
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
最简单的设置和获取id,name和age的方法。
接着是连接数据库,更新信息,查询信息的方法:
package com.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList; import com.example.Student; public class ConnectDB {
private static Connection conn = null;
private static Statement stmt = null;
private static ResultSet rs = null; public static void startConnect() {
try {
Class.forName("com.mysql.jdbc.Driver");
try {
conn = DriverManager.getConnection(
"jdbc:MySQL://127.0.0.1:3306/test", "root", "你的密码");
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO: handle exception
e.printStackTrace();
}
} public static void endConnect() throws SQLException {
//关闭连接
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
} public static void update(String sql) throws SQLException { //数据库更新
startConnect();
stmt = conn.createStatement();
stmt.executeUpdate(sql);
endConnect();
} public static ArrayList getList1(String sql) throws SQLException { //数据库查询
ArrayList list = new ArrayList();
startConnect();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
Student st = new Student();
st.setSid(rs.getString("sid"));
st.setName(rs.getString("sname"));
st.setAge(rs.getString("sage"));
list.add(st);
}
endConnect();
return list;
} }
然后实现几个简单的jsp代码,首先是list.jsp:
<%@page import="com.example.Student"%>
<%@page import="com.example.ConnectDB"%>
<%@ page language="java" import="com.example.ConnectDB,com.example.Student,java.util.*"
pageEncoding="gbk"%>
<%--jsp头文件,包括引入的包和支持语言,gbk为支持中文--%>
<%
ArrayList list = ConnectDB.getList1("select sid,sname,sage from student"); //获得test表中所有数据并以列表形式返回
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'list.jsp' starting page</title>
</head>
<body>
<input type="button" name="bottom" value="添加新学生"
onclick="javascript:window.location.href='add.jsp'">
<br>
<br>
<table border="1">
<tr>
<td>
编号
</td>
<td>
姓名
</td>
<td>
年龄
</td>
<td>
操作
</td>
</tr>
<%
{
for (Iterator it = list.iterator(); it.hasNext();) {
Student s = (Student) it.next();
%>
<tr>
<td><%=s.getSid()%></td>
<td><%=s.getName()%></td>
<td><%=s.getAge()%></td>
<td>
<a href="update.jsp?sid=<%=s.getSid()%>">修改</a>
<a href="delete.jsp?sid=<%=s.getSid()%>"
onclick="return confirm('确定删除?');">删除</a>
</td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
这里通过调用了ConnectDB的getlist1方法来显示目前数据库test的student表中的数据信息。接着是添加的jsp:
<%@ page language="java" pageEncoding="utf-8"%>
<%
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>add</title>
</head>
<body>
<form action="addInfo.jsp" method="post">
提交到addinfo.jsp
<p>
添加学生:
</p>
SID:
<input type="text" name="sid">
<br>
<br>
姓名:
<input type="text" name="sname">
<br>
<br>
年龄:
<input type="text" name="sage">
<br>
<br>
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>
这里把数据提交到addinfo.jsp:
<%@page import="com.example.ConnectDB"%>
<%@ page language="java" import="com.example.ConnectDB" pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8"); String sid=new String(request.getParameter("sid").getBytes("UTF-8"));
String name = new String(request.getParameter("sname").getBytes("UTF-8"));
String age = new String(request.getParameter("sage").getBytes("UTF-8"));
ConnectDB.update("insert into student (sid,sname,sage) values ('"+sid+"','"+name+"','"+age+"')");
response.sendRedirect("list.jsp");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'addinfo.jsp' starting page</title>
</head>
<body>
添加成功!<br>
</body>
</html>
接着是delete.jsp
<%@ page language="java" import="com.example.ConnectDB" pageEncoding="gbk"%>
<%
ConnectDB.update("delete from student where sid ="+request.getParameter("sid")); //获得要删除人的sid并删除
response.sendRedirect("list.jsp"); //转到list.jsp页面
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'delete.jsp' starting page</title>
</head>
<body>
This is my JSP page.<br>
</body>
</html>
基本上就这些了,更新的jsp就不写了。运行结果如下:
通过这个例子基本上关于web的简单工程创建啊,修改数据库之类的都基本上可以去玩了,那么之后就可以搭建web和前段时间研究的仿微信的android app可以交互了。
Web开发学习之路--Eclipse+Tomcat+mysql之初体验的更多相关文章
- Android开发学习之路--NDK、JNI之初体验
好久没有更新博客了,最近一直在看一个仿微信项目,然后看源码并自己实现下,相信经过这个项目可以让自己了解一个项目中的代码以及种种需要注意的事项.不知不觉中博客已经快要40w访问量,而且排名也即将突破30 ...
- Web开发学习之路--Springmvc+Hibernate之初体验
本来想继续学习android的,可是用到了android和服务器交互,需要实现个login的功能,苦于没有这么个环境,那就只能自己来搭建了.既然已经基本上可以玩web了,那么接下来使用web开源的框架 ...
- web开发学习之路是否有尽头
Linux/Git/Pip/Npm/Composer Apache/Ngnix Mysql/MongoDb/Redis PHP/Python/NodeJS javascript/jQuery/Expr ...
- Android开发学习之路--Android Studio cmake编译ffmpeg
最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...
- 【Java Web开发学习】Spring JPA
[Java Web开发学习]Spring JPA 转载:https://www.cnblogs.com/yangchongxing/p/10082864.html 1.使用容器管理类型的JPA JND ...
- 【Java Web开发学习】Spring4整合thymeleaf视图解析
[Java Web开发学习]Spring4整合thymeleaf视图解析 目录 1.简单介绍2.简单例子 转载:https://www.cnblogs.com/yangchongxing/p/9111 ...
- Android开发学习之路-RecyclerView滑动删除和拖动排序
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...
- 【前端】移动端Web开发学习笔记【2】 & flex布局
上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...
- 【前端】移动端Web开发学习笔记【1】
下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...
随机推荐
- C++Primer学习——类型转换
无符号之间的运算 当一个是无符号类型,另外一个是带符号类型: 如果无符号不小于带符号,那么带符号转换成无符号. 如果无符号小于带符号,当无符号类型的所有值都能存到带符号中时,则无符号转换成带符号,否则 ...
- [bzoj4881][Lydsy2017年5月月赛]线段游戏
来自FallDream的博客,未经允许,请勿转载,谢谢. quailty和tangjz正在玩一个关于线段的游戏.在平面上有n条线段,编号依次为1到n.其中第i条线段的两端点坐标分别为(0,i)和(1, ...
- 解决win10 VC++6.0 应用程序无法正常运行 0xc0000142
废话不多说,无法正常运行原因就是win10不兼容中文版的vc,解决方法就是一句话,用英文版的msdev.exe替换中文版的msdev.exe,msdev.exe是vc的启动程序.直接上来教你怎么做.废 ...
- IOS WebViewJavascriptBridge 使用以及原理分析
本文转自:https://www.jianshu.com/p/b8d4285395c6 概述 从两个方面来讲: js不能直接调用oc的方法 oc可以通过如下函数调用js代码 - (void)evalu ...
- C程序练习
1.编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔.要求不输出时间差的负号. #include<stdio.h> int main() { int ...
- ActiveMQ消息传递的两种方式
1.什么是ActiveMQ? ActiveMQ是apache提供的开源的,实现消息传递的一个中间插件,可以和spring整合,是目前最流行的开源消息总线,ActiveMQ是一个完全支持JMS1.1和J ...
- pip: unsupported locale setting
在终端里输入 $ export LC_ALL=C 可解决 http://stackoverflow.com/questions/36394101/pip-install-locale-error-un ...
- Centos 7安装MYSQL
1.下载RPM源 直接使用yum命令下载mysql来进行安装是不能成功的,安装过程会有问题,这里需要使用rpm命令来先进下载.下载路径为: http://dev.mysql.com/get/mysql ...
- js 利用 ajax 加载 js ,显示加载进度 ,严格按照js的顺序先后加载到页面
js 利用 ajax 加载 js ,显示加载进度 ,严格按照js的顺序先后加载到页面 , 做手机端开发时,发现一个问题,有些浏览器,在网速比较慢的情况下,js文件没有加载完,后续的调用已经开始调用了, ...
- ABP文档笔记 - 事件BUS
文档: ABP框架 - 领域事件(EventBus) EventBus & Domain Events ABP源码分析二十五:EventBus EventBus(事件总线) EventBus是 ...