08-12 Serverlet 数据库连接、doPost方法 HttpClientDoGet HTTPClientDoPost
2015-08-12 21:01
591 查看
Serverlet 数据库连接、 doPost方法
HTTPClient
//**数据库连接** public class Mysqlmanger { private Statement statement; private Connection connection; public Connection getConnection() { return connection; } public void setConnection(Connection connection) { this.connection = connection; } public Statement getStatement() { return statement; } public void setStatement(Statement statement) { this.statement = statement; } public static Mysqlmanger manger; public static synchronized Mysqlmanger newInstance(){ if(manger==null){ 4000 manger=new Mysqlmanger(); } return manger; } private Mysqlmanger(){ //连接数据库驱动 String driver="com.mysql.jdbc.Driver"; //URL指向要访问的数据库名 String url="jdbc:mysql://localhost:3306/clazz"; //MySQL配置时的用户名 String user="root"; //Java连接MySQL配置时的密码 String password="123456"; try { Class.forName(driver); connection=DriverManager.getConnection(url, user, password); if(!connection.isClosed()){ statement=connection.createStatement(); String create="create table if not exists user(id int not null primary key auto_increment ,name varchar(30) not null,password varchar(30) not null)"; statement.execute(create); // System.out.println("user表创建成功"); }else{ System.out.println("请打开数据库"); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //**MyServerlet(服务器)** /** * Servlet implementation class MyServerlet */ @WebServlet("/MyServerlet") public class MyServerlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public MyServerlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //显示在控制台 String userName=request.getParameter("name"); String passWord=request.getParameter("password"); System.out.println("用户名:"+userName+" 密码:"+passWord); userName=Encoding.doEncoding(userName); passWord=Encoding.doEncoding(passWord); Connection connection=Mysqlmanger.newInstance().getConnection(); try { PreparedStatement preparedStatement=connection.prepareStatement("select * from user where name=? and password=?"); preparedStatement.setString(1, userName); preparedStatement.setString(2, passWord); ResultSet set=preparedStatement.executeQuery(); set.last(); int num=set.getRow(); if(num==1){ System.out.println("登录成功"); }else{ System.out.println("用户名或密码错误"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //显示在界面 String s="用户名:"+userName+" 密码:"+passWord; response.setHeader("Content-type","text/html;charset=UTF-8"); response.getWriter().append(s); // response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } } //**前段与后台数据格式转换,避免乱码** public class Encoding { public static String doEncoding(String string){ try { byte[] array=string.getBytes("ISO-8859-1"); string=new String(array, "UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return string; } } //**doPost方法** public class DoPost extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DoPost frame = new DoPost(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DoPost() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JButton btnDopost = new JButton("doPost方法"); btnDopost.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String urlstring="http://localhost:8080/MyServerTest/MyServerlet"; try { URL url=new URL(urlstring); HttpURLConnection httpconnect=(HttpURLConnection) url.openConnection(); httpconnect.setRequestMethod("POST"); //设置连接超时时间 httpconnect.setConnectTimeout(3000); //读取超时时间 httpconnect.setReadTimeout(3000); //设置接受的数据类型 httpconnect.setRequestProperty("Accept-Charset", "utf-8"); httpconnect.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpconnect.setDoOutput(true); httpconnect.setUseCaches(false); String parmas="name=john&password=123"; httpconnect.getOutputStream().write(parmas.getBytes()); int code=httpconnect.getResponseCode(); System.out.println("HTTP 状态码"+code); if(code==HttpURLConnection.HTTP_OK){ InputStream is=httpconnect.getInputStream(); InputStreamReader isr=new InputStreamReader(is); BufferedReader br=new BufferedReader(isr); String line=br.readLine(); while(line!=null){ System.out.println(line); line=br.readLine(); } } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(SocketTimeoutException e){ System.out.println("连接服务器超时"); }catch (ConnectException e){ System.out.println("服务器拒绝连接"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); btnDopost.setBounds(117, 94, 125, 30); contentPane.add(btnDopost); } }
HTTPClient
//**连接数据库** public class Mysqlmanger { private Statement statement; private Connection connection; public Connection getConnection() { return connection; } public void setConnection(Connection connection) { this.connection = connection; } public Statement getStatement() { return statement; } public void setStatement(Statement statement) { this.statement = statement; } public static Mysqlmanger manger; public static synchronized Mysqlmanger newInstance(){ if(manger==null){ manger=new Mysqlmanger(); } return manger; } private Mysqlmanger(){ //连接数据库驱动 String driver="com.mysql.jdbc.Driver"; //URL指向要访问的数据库名 String url="jdbc:mysql://localhost:3306/clazz"; //MySQL配置时的用户名 String user="root"; //Java连接MySQL配置时的密码 String password="123456"; try { Class.forName(driver); connection=DriverManager.getConnection(url, user, password); if(!connection.isClosed()){ statement=connection.createStatement(); String create="create table if not exists user(id int not null primary key auto_increment ,name varchar(30) not null,password varchar(30) not null)"; statement.execute(create); // System.out.println("user表创建成功"); }else{ System.out.println("请打开数据库"); } } catch (ClassNotFoundException e) { // TOD d5e7 O Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //**前段与后台数据格式转换,避免乱码** public class Encoding { public static String doEncoding(String string){ try { byte[] array=string.getBytes("ISO-8859-1"); string=new String(array, "UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return string; } } //**MyServerlet** /** * Servlet implementation class MyServerlet */ @WebServlet("/MyServerlet") public class MyServerlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public MyServerlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //显示在控制台 String userName=request.getParameter("name"); String passWord=request.getParameter("password"); System.out.println("用户名:"+userName+" 密码:"+passWord); userName=Encoding.doEncoding(userName); passWord=Encoding.doEncoding(passWord); Connection connection=Mysqlmanger.newInstance().getConnection(); try { PreparedStatement preparedStatement=connection.prepareStatement("select * from user where name=? and password=?"); preparedStatement.setString(1, userName); preparedStatement.setString(2, passWord); ResultSet set=preparedStatement.executeQuery(); set.last(); int num=set.getRow(); if(num==1){ System.out.println("登录成功"); }else{ System.out.println("用户名或密码错误"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //显示在界面 String s="用户名:"+userName+" 密码:"+passWord; response.setHeader("Content-type","text/html;charset=UTF-8"); response.getWriter().append(s); // response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } } //**HttpClientDoGet方法** public class HttpClientDoGet extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { HttpClientDoGet frame = new HttpClientDoGet(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public HttpClientDoGet() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JButton button = new JButton("登录"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String urlstring="http://localhost:8080/MyServerTest/MyServerlet?name=john&password=123"; HttpClientBuilder builder=HttpClientBuilder.create(); builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS); HttpClient httpClient=builder.build(); HttpGet get=new HttpGet(urlstring); get.setHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); try { HttpResponse response=httpClient.execute(get); StatusLine statusLine=response.getStatusLine(); int code=statusLine.getStatusCode(); if(code==HttpURLConnection.HTTP_OK){ HttpEntity entity=response.getEntity(); InputStream is=entity.getContent(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); String line=br.readLine(); while(line!=null){ System.out.println(line); line=br.readLine(); } } } catch (ClientProtocolException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); button.setBounds(120, 93, 123, 41); contentPane.add(button); } } //**HTTPClientDoPost方法** //MyServerlet中Encoding就不必用了,不用担心乱码问题 public class HTTPClientDoPost extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { HTTPClientDoPost frame = new HTTPClientDoPost(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public HTTPClientDoPost() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JButton button = new JButton("登录"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String urlstring="http://localhost:8080/MyServerTest/MyServerlet"; HttpClientBuilder builder=HttpClientBuilder.create(); builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS); HttpClient client=builder.build(); HttpPost post=new HttpPost(urlstring); NameValuePair pair1=new BasicNameValuePair("name", "john"); NameValuePair pair2=new BasicNameValuePair("password", "123"); ArrayList<NameValuePair> params=new ArrayList<>(); params.add(pair1); params.add(pair2); try { post.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); HttpResponse response=client.execute(post); int code=response.getStatusLine().getStatusCode(); if(code==200){ HttpEntity entity=response.getEntity(); InputStream is=entity.getContent(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); String line=br.readLine(); while(line!=null){ System.out.println(line); line=br.readLine(); } } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); button.setBounds(143, 80, 118, 45); contentPane.add(button); } }
相关文章推荐
- HTTP协议
- Android网络状况查询
- .Net C# Winform 中判断本地系统的网络连接状态的方法
- HTTPdoGet与HTTPdoPost
- URL和HTTPClient与服务器的连接
- HttpUrlConnection网络连接
- org.springframework.http.converter.HttpMessageNotWritableException:
- 基于JMF RTP的网络传输媒体流
- 2015/08/12/HTTPURL中GET和POST/HTTPClient中的GET和POST
- java Http编程小结
- 2015/08/12/HTTPURL中GET和POST/HTTPClient中的GET和POST
- twisted08-1 多级访问-httpserver
- HttpURLConnection和HttpClient的用法
- HTTPConnection与HTTPClient
- http://blog.sina.com.cn/s/blog_777a9ccb01013maj.html
- Java判断和检查网络
- TCP/IP网络编程 学习笔记_9 --域名系统(DNS)
- TCP/IP网络编程 学习笔记_9 --域名系统(DNS)
- 黑马程序员——java学习14(毕23-24)——网络编程
- http服务器交互get,put,post,delete等概念