码迷,mamicode.com
首页 > 其他好文 > 详细

晨跑调查程序学习笔记

时间:2014-10-03 21:44:25      阅读:418      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   io   os   使用   ar   

1.网站开发思路,从jsp页面开始写起,然后写servlet,之后写类来保存获取的表单变量,最后将获取的变量写入到数据库。

2.开始写代码前先检查字符集,检查方法:

  选中所建立的工程——>Alt+Enter——>修改字符集要尽量和数据库默认字符集一致。

注意:我的MySQL安装时默认字符集不是utf-8,为了和老师讲的一致,我将其修改成了UTF-8.

MySQL修改默认字符集的方法见http://www.cnblogs.com/xingyunblog/p/3836299.html

bubuko.com,布布扣

bubuko.com,布布扣

3.编写表单代码时表单Get和Post的选择,如果无汉字,则用get或者post都可以,默认get方式。但如有汉字则只能用post,否则可能会出现乱码问题。

4.table属性:border边框宽度,bgcolor背景颜色

5.input的type属性radio是单选按钮,type属性submit是提交。name属性必须一样,checked属性为默认选择项,value属性区分选项。

6.<td>属性colspan是跨列,有多少<td></td>就有多少列。

index.jsp页面代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <head>
    <title>投票页面</title>
  </head>
  <body bgcolor="#6699FF">
  <form action="voteServlet" >
  <table bgcolor="#eeeeee" align="center">
     <caption><h2>晨跑情况调查表</h2></caption>
     <tr>
         <td>  <input type="radio" name="vote" value="A" checked="checked"/>坚持跑下去</td>
         <td>  <input type="radio" name="vote" value="B"/>跑一学期试试</td>
         <td>  <input type="radio" name="vote" value="C"/>不想跑了</td>
    </tr>
     <tr align="center">
         <td colspan="3"> <input type="submit"value="提交"/></td>
     </tr>
  </table>
  </form>
  </body>
</html>

7.写servlet时直接新建servlet就可以图形用户界面配置web.xml.

bubuko.com,布布扣

bubuko.com,布布扣


bubuko.com,布布扣

8.web.xml中的<url-pattern>/voteServlet</url-pattern>中的url地址一定要和<form action="voteServlet">保持一致。
voteServlet.java源码如下:

package servlets;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import service.IDBService;
import service.IDBServiceImpl;
import beans.User;

//表单提交servlet类
public class VoteServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取用户提交参数vote的值 response.setContentType("text/html;charset=utf-8"); String vote=request.getParameter("vote"); //获取客户端用户IP String ip=request.getRemoteAddr(); //创建对象user类,跳转到User类 User user=new User(); user.setIp(ip); user.setVote(vote); //创建IDBService服务类,创建IDBserviceImpl服务实现类 //IDBserviceImpl类实现IDBService类接口 IDBService service=new IDBServiceImpl(); //判断数据库中是否存在这个ip User findUser=service.selectUserByIP(ip); String message="对不起,您已经投过票了,谢谢您的支持!"; //如果findUser不为null,则说明该用户已经投过票了,不能再投了。 if(findUser==null){ service.insertUser(user); message="您的投票已完成,谢谢您的支持!"; } //session保存反馈结果字符串 HttpSession session=request.getSession(); session.setAttribute("message",message); //跳转页面 RequestDispatcher rd=request.getRequestDispatcher("message.jsp"); rd.forward(request, response); } //doPost调用doGet方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }

 


9.servlet中通过request.getParameter(变量名name字符串) 获取提交的数据.

bubuko.com,布布扣

10.面向对象类中不要定义成int类型,因为定义成Interger在后面代码中才可以进行判空操作。

11.定义好变量后,就可以使用source——>Generate Getters and Setters...快速重写赋值和修改变量方法。

 bubuko.com,布布扣

bubuko.com,布布扣

编写好User.java代码如下:

package beans;

import java.io.Serializable;

//此类对象user类,用来赋值保存获取的变量。
public class User implements Serializable {
    private Integer id;//这里不要定义成int类型,不然无法进行判空操作。
    private String ip;
    private String vote;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getIp() {
        return ip;
    }
    public void setIp(String ip) {
        this.ip = ip;
    }
    public String getVote() {
        return vote;
    }
    public void setVote(String vote) {
        this.vote = vote;
    }
}

建立数据库如下:

bubuko.com,布布扣

12.图形用户界面建立数据库后,选中数据库——右键——转储Sql文件——>选择保存路径,
bubuko.com,布布扣
13.记事本方式打开sql文件,添加语句create datebase run_data;use run_data;将修改后的文件保存。

run_data.sql文件修改后如下:

/*
Navicat MySQL Data Transfer

Source Server         : localhost_3306
Source Server Version : 50130
Source Host           : localhost:3306
Source Database       : run_data

Target Server Type    : MYSQL
Target Server Version : 50130
File Encoding         : 65001

Date: 2014-10-03 10:12:09
*/

create datebase run_data;
use run_data;

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `users`
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ip` varchar(255) DEFAULT NULL,
  `vote` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of users
-- ----------------------------

 


14.新建一个Folder,起一个名字,将刚才生成的sql文件复制到这个目录下。

bubuko.com,布布扣

 

bubuko.com,布布扣

bubuko.com,布布扣

 

15.在eclipse下,package, source folder, folder都是文件夹. 但它们有区别如下:



    1.sourceFolder靠"/"来进行上下级划分,package靠“.”来进行上下级划分。
 
    2.source folder下能建package,而package下不能建source folder.

    3.package:当你在建立一个package时,它自动建立到source folder下,也只能建立在这个目录之下.

    4.source folder:存放java源代码的文件夹,当然也包括一些package文件夹,还可以包含其他文件.

    5.项目构建后,source folder里面的java自动编译成class文件到相应的bin文件夹中,其他文件也会移到到相应的目录下.
 
    6.folder:里面可以放入任何文件.包括java源文件,jar文件,其他文件(例如,图片,声音等).

    7.folder:如果里面含有java源文件,不管程序是否正确,eclipse都不会报错,把它们当做普通文件处理.

      但是项目如果要使用这里面的文件,情况就不同了.
   
    8. package:ECLIPSE会自动编译此文件夹同里面所包含的代码跟package

    9.source folder:ECLIPSE会自动编译里面的类文件,但文件夹本身不会编译

    10.folder:下面的类,ECLIPSE不会编译到指定存放编译文件包里.


16.创建接口IDBService,选中IDBService service=new IDBServiceImpl();中的IDBService后右键——>Create Interface,包名service.

bubuko.com,布布扣

bubuko.com,布布扣
IDBService.java代码如下:

package service;

import java.util.List;

import beans.User;

//提供服务类
public interface IDBService {
    //插入数据
    void insertUser(User user);
    //查询所有用户
    List<User> selectAllUsers();
    //查询所有用户IP
    User selectUserByIP(String ip);
    
    List<User> selectUsersByVote(String vote);
}

 

 


17.选中IDBService service=new IDBServiceImpl();中的IDBServiceImpl按下Alt+1快速修复,新建class类。

 


 

程序截图:

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
 


晨跑调查程序学习笔记

标签:des   style   blog   http   color   io   os   使用   ar   

原文地址:http://www.cnblogs.com/xingyunblog/p/4005260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!