有史以来最全的初学者教程来了。。。
本博客最适合初学者,是最基本的mvc使用,实现的功能:登录、注册、找回密码,用户查询,用户删除。主要是练习最基本的sql操作等。废话不多说,我来告诉你什么是实例O(∩_∩)O哈哈~
1、开发环境:windows xp+myEclipse 6.6+Tomcat 6.0+mysql 5.0
2、搭建struts环境,自己去翻其他实例教程,这里不赘述,项目目录如下。
3、数据库连接是用连接池的方式来连接的,web.xml,applicationContext.xml,proxool.xml这三个文件配置好,写出连接类就能连接成功了。
(1)web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!--启动连接池-->
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>
WEB-INF/proxool.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>\WEB-INF\applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/Service/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
</web-app>
(2)applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"
default-lazy-init="true">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>org.logicalcobwebs.proxool.ProxoolDataSource</value>
</property>
<property name="url">
<value>proxool.ZHKS</value>
</property>
</bean>
</beans>
(3) proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<proxool-config>
<proxool>
<alias>ZHKS</alias>
<driver-url>jdbc:mysql://192.168.136.127:3306/user?useUnicode=true&characterEncoding=UTF-8</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<maximum-new-connections>100</maximum-new-connections>
<prototype-count>5</prototype-count>
<house-keeping-sleep-time>60000</house-keeping-sleep-time>
<house-keeping-test-sql>select current_date from dual</house-keeping-test-sql>
<maximum-connection-count>5000</maximum-connection-count>
<minimum-connection-count>2</minimum-connection-count>
</proxool>
</proxool-config>
(4)com.cvicse.DBconn.DBConnection.java
package com.cvicse.DBconn;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
public class DBConnection {
public Connection getConn() {
Driver driver;
Connection conn = null;
try {
driver = (Driver)Class.forName("org.logicalcobwebs.proxool.ProxoolDriver").newInstance();
DriverManager.registerDriver(driver);
conn = DriverManager.getConnection("proxool.ZHKS");
//conn = DriverManager.getConnection("proxool.ZHKS:driver:jdbc:mysql://192.168.136.127:3306/user","root","root");
} catch (Exception e1) {
e1.printStackTrace();
}
return conn;
}
}
(5)sql脚本
CREATE TABLE `user` (
`userid` int(10) NOT NULL auto_increment COMMENT '用户编号',
`username` varchar(30) default NULL COMMENT '用户名',
`password` varchar(30) default NULL COMMENT '密码',
`email` varchar(50) default NULL COMMENT '邮箱',
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
现在我们已经把数据库给连接上了,下面就进入功能的编写
4、com.cvicse.bean.LoginForm.java
package com.cvicse.bean;
public class LoginForm {
private int userid;
private String username;
private String password;
private String email;
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return the userid
*/
public int getUserid() {
return userid;
}
/**
* @param userid the userid to set
*/
public void setUserid(int userid) {
this.userid = userid;
}
/**
* @return the email
*/
public String getEmail() {
return email;
}
/**
* @param email the email to set
*/
public void setEmail(String email) {
this.email = email;
}
}
5、com.cvicse.bean.Mail.java
package com.cvicse.bean;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
/**
* @author ------
*
*/
public class Mail {
String to = ""; // 收件人
String from = ""; // 发件人
String host = ""; // smtp主机
String username = ""; // 用户名
String password = ""; // 密码
String subject = ""; // 邮件主题
String content = ""; // 邮件正文
public Mail() {
}
public Mail(String to, String from, String host, String username,
String password, String subject, String content) {
this.to = to;
this.from = from;
this.host = host;
this.username = username;
this.password = password;
th