「java开发手机网页」java web网站开发

博主:adminadmin 2023-03-22 19:42:09 782

今天给各位分享java开发手机网页的知识,其中也会对java web网站开发进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何用java进行移动端后台开发

java进行移动后台开发与java进行web后台开发完全一样。java原生的后台框架servlet,如果使用java后台开源框架可以选用spring+springmvc+mybatis,或者使用ssh框架。

一  其实前台与后台交互常用两种协议方式:

 1 http协议。

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP协议的主要特点可概括如下:

1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

2 webservice,例子有天气预报接口。

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。[1]

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

二 前台后台数据传递格式常用的也有两种:

1 xml

XML 三种解析方式简介

大名鼎鼎的 DOM

说它大名鼎鼎可是一点不为过,DOM 是 W3C 处理 XML 的标准 API,它是许多其它与 XML 处理相关的标准的基础,不仅是 Java,其它诸如 Javascript,PHP,MS .NET 等等语言都实现了该标准, 成为了应用最为广泛的 XML 处理方式。当然,为了能提供更多更加强大的功能,Java 对于 DOM 直接扩展工具类有很多,比如很多 Java 程序员耳熟能详的 JDOM,DOM4J 等等, 它们基本上属于对 DOM 接口功能的扩充,保留了很多 DOM API 的特性,许多原本的 DOM 程序员甚至都没有任何障碍就熟练掌握了另外两者的使用,直观、易于操作的方式使它深受广大 Java 程序员的喜爱。

绿色环保的 SAX

SAX 的应运而生有它特殊的需要,为什么说它绿色环保呢,这是因为 SAX 使用了最少的系统资源和最快速的解析方式对 XML 处理提供了支持。 但随之而来繁琐的查找方式也给广大程序员带来许多困扰,常常令人头痛不已,同时它对 XPath 查询功能的支持,令人们对它又爱又恨。

默默无闻的 Digester:XML 的 JavaBean 化

Digester 是 apache 基金组织下的一个开源项目,笔者对它的了解源于对 Struts 框架的研究,是否有很多程序员想要一解各大开源框架的设计甚至想要自己写一个功能强大的框架时会碰到这样一个难题: 这些形形色色的用 XML 语言标记的框架配置文件,框架底层是用什么技术来解析呢? DOM 解析耗费时间,SAX 解析又过于繁琐,况且每次解析系统开销也会过大, 于是,大家想到需要用与 XML 结构相对应的 JavaBean 来装载这些信息,由此 Digester 应运而生。它的出现为 XML 转换为 JavaBean 对象的需求带来了方便的操作接口,使得更多的类似需求得到了比较完美的解决方法, 不再需要程序员自己实现此类繁琐的解析程序了。与此同时 SUN 也推出了 XML 和 JavaBean 转换工具类 JAXB,有兴趣的读者可以自行了解。

2 json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

三 安卓学习例子

如果想了解安卓与后台交互的例子,请去360手机助手下载安卓学习手册,里面有大量安卓的例子以及http协议详解,源码,文档都可看。下面是例子截图

java程序,要在手机上显示网页,如何自动获取手机屏幕分辨率?

你小米3的参数,安兔兔,鲁大师,360优化大师等等都可以获取手机屏幕分辨率。

用java web编程技术既能编写电脑版网页又能编写手机版网页吗?

适配电脑和手机页面的浏览器浏览,主要是靠html和css,通过不同的设备访问,显示出不同的适配来达到最佳浏览效果。Java web编程技术,这个一般来说是指后台服务处理,和前端显示是分开的。

java开发手机浏览器 只要最基本的功能

3.WebBrowser.java

package CH04.源程序;

/*

**网页浏览器主程序

**WebBrowser.java

*/

import java.awt.*;

import javax.swing.*;

import javax.swing.text.*;

import java.awt.event.*;

import javax.swing.event.*;

import javax.swing.border.*;

import javax.swing.filechooser.FileFilter;

import javax.swing.filechooser.FileView;

import java.io.*;

import java.net.*;

import java.util.*;

public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{

//建立工具栏用来显示地址栏

JToolBar bar=new JToolBar ();

//建立网页显示界面

JTextField jurl = new JTextField (60);

JEditorPane jEditorPane1 = new JEditorPane ();

JScrollPane scrollPane = new JScrollPane (jEditorPane1);

JFileChooser chooser=new JFileChooser ();

JFileChooser chooser1=new JFileChooser ();

String htmlSource;

JWindow window = new JWindow (WebBrowser.this);

JButton button2=new JButton ("窗口还原");

Toolkit toolkit = Toolkit.getDefaultToolkit();

//建立菜单栏

JMenuBar jMenuBar1 = new JMenuBar();

//建立菜单组

JMenu fileMenu = new JMenu ("文件(F)");

//建立菜单项

JMenuItem saveAsItem = new JMenuItem ("另存为(A)...");

JMenuItem exitItem=new JMenuItem ("退出(I)");

JMenu editMenu=new JMenu ("编辑(E)");

JMenuItem backItem=new JMenuItem ("后退");

JMenuItem forwardItem=new JMenuItem ("前进");

JMenu viewMenu=new JMenu ("视图(V)");

JMenuItem fullscreenItem=new JMenuItem ("全屏(U)");

JMenuItem sourceItem=new JMenuItem ("查看源码(C)");

JMenuItem reloadItem=new JMenuItem ("刷新(R)");

//建立工具栏

JToolBar toolBar = new JToolBar();

//建立工具栏中的按钮组件

JButton picSave = new JButton("另存为");

JButton picBack = new JButton("后退");

JButton picForward = new JButton("前进");

JButton picView = new JButton("查看源代码");

JButton picExit = new JButton("退出");

JLabel label=new JLabel ("地址");

JButton button=new JButton ("转向");

Box adress=Box.createHorizontalBox ();

//ArrayList对象,用来存放历史地址

private ArrayList history=new ArrayList();

//整型变量,表示历史地址的访问顺序

private int historyIndex;

/**

**构造函数

**初始化图形用户界面

*/

public WebBrowser(){

setTitle ("网页浏览器");

setResizable(false);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//为jEditorPane1添加事件侦听

jEditorPane1.addHyperlinkListener (this);

//为组件fileMenu设置热键‘F’

fileMenu.setMnemonic('F');

saveAsItem.setMnemonic ('S');

//为“另存为”组件设置快捷键为ctrl+s

saveAsItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK));

exitItem.setMnemonic('Q');

exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK));

//将菜单项saveAsItem加入到菜单组fileMenu中

fileMenu.add (saveAsItem);

//在菜单项中添加隔离

fileMenu.addSeparator ();

fileMenu.add (exitItem);

backItem.setMnemonic ('B');

backItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Z,InputEvent.CTRL_MASK));

forwardItem.setMnemonic('D');

forwardItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P,InputEvent.CTRL_MASK));

editMenu.setMnemonic('E');

editMenu.add (backItem);

editMenu.add (forwardItem);

viewMenu.setMnemonic('V');

fullscreenItem.setMnemonic('U');

fullscreenItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK));

sourceItem.setMnemonic('C');

sourceItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK));

reloadItem.setMnemonic('R');

reloadItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_R,InputEvent.CTRL_MASK));

Container contentPane=getContentPane ();

//设置大小

scrollPane.setPreferredSize(new Dimension(100,500));

contentPane.add (scrollPane, BorderLayout.SOUTH);

//在工具栏中添加按钮组件

toolBar.add(picSave);

toolBar.addSeparator();

toolBar.add(picBack);

toolBar.add(picForward);

toolBar.addSeparator();

toolBar.add(picView);

toolBar.addSeparator();

toolBar.add(picExit);

contentPane.add (bar,BorderLayout.CENTER);

contentPane.add(toolBar,BorderLayout.NORTH);

viewMenu.add (fullscreenItem);

viewMenu.add (sourceItem);

viewMenu.addSeparator ();

viewMenu.add (reloadItem);

jMenuBar1.add (fileMenu);

jMenuBar1.add (editMenu);

jMenuBar1.add (viewMenu);

setJMenuBar (jMenuBar1);

adress.add (label);

adress.add (jurl);

adress.add (button);

bar.add (adress);

//为组件添加事件监听

saveAsItem.addActionListener(this);

picSave.addActionListener(this);

exitItem.addActionListener(this);

picExit.addActionListener(this);

backItem.addActionListener(this);

picBack.addActionListener(this);

forwardItem.addActionListener(this);

picForward.addActionListener(this);

fullscreenItem.addActionListener(this);

sourceItem.addActionListener(this);

picView.addActionListener(this);

reloadItem.addActionListener(this);

button.addActionListener(this);

jurl.addActionListener(this);

}

/**

**实现监听器接口的actionPerformed函数

*/

public void actionPerformed(ActionEvent e) {

String url = "";

//点击转向按钮

if (e.getSource() == button){

//获得地址栏的内容

url=jurl.getText ();

//url不为“”,并且以“http://”开头

if(url.length ()0url.startsWith ("http://")){

try {

//JEditorPane组件显示url的内容链接

jEditorPane1.setPage (url);

//将url的内容添加到ArrayList对象history中

history.add(url);

//historyIndex的数值设为history对象的长度-1

historyIndex=history.size()-1;

//重新布局

jEditorPane1.setEditable(false); //add by copy editor :)

jEditorPane1.revalidate ();

}

catch(Exception ex) {

//如果链接显示失败,则弹出选择对话框“无法打开该搜索页”

JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

//url不为“”,并且不以“http://”开头

else if(url.length ()0!url.startsWith ("http://")) {

//在url前面添加“http://”

url="http://"+url;

try {

jEditorPane1.setPage (url );

history.add(url);

historyIndex=history.size()-1;

jEditorPane1.setEditable(false); //add by copy editor :)

jEditorPane1.revalidate ();

}

catch(Exception ex) {

JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

//没有输入url,即url为空

else if(url.length ()==0){

JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

//输入地址后点击回车

else if (e.getSource() == jurl){

url=jurl.getText ();

if(url.length ()0url.startsWith ("http://")) {

try {

jEditorPane1.setPage (url);

history.add(url);

historyIndex=history.size()-1;

jEditorPane1.setEditable(false); //add by copy editor :)

jEditorPane1.revalidate ();

jurl.setMaximumSize (jurl.getPreferredSize ());

}

catch(Exception ex) {

JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

else if(url.length ()0!url.startsWith ("http://")) {

url="http://"+url;

try {

jEditorPane1.setPage (url );

history.add(url);

historyIndex=history.size()-1;

jEditorPane1.setEditable(false); //add by copy editor :)

jEditorPane1.revalidate ();

}

catch(Exception ex) {

JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

else if(url.length ()==0){

JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

//另存为...

else if (e.getSource() == picSave||e.getSource() == saveAsItem){

url = jurl.getText ().toString ().trim();

if(url.length ()0!url.startsWith ("http://")) {

url="http://"+url;

}

if(!url.equals ("")) {

//保存文件

saveFile(url);

}

else {

JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

//退出

else if (e.getSource() == exitItem ||e.getSource() == picExit){

System.exit(0);

}

//后退

else if (e.getSource() == backItem ||e.getSource() == picBack){

historyIndex--;

if(historyIndex 0)

historyIndex = 0;

url = jurl.getText();

try{

//获得history对象中本地址之前访问的地址

url = (String)history.get(historyIndex);

jEditorPane1.setPage(url);

jurl.setText(url.toString());

jEditorPane1.setEditable(false); //add by copy editor :)

jEditorPane1.revalidate ();

}

catch(Exception ex){

}

}

//前进

else if (e.getSource() == forwardItem ||e.getSource() == picForward){

historyIndex++;

if(historyIndex = history.size())

historyIndex = history.size()-1;

url = jurl.getText();

try{

//获得history对象中本地址之后访问的地址

url = (String)history.get(historyIndex);

jEditorPane1.setPage(url);

jurl.setText(url.toString());

jEditorPane1.setEditable(false); //add by copy editor :)

jEditorPane1.revalidate ();

}

catch(Exception ex){

}

}

//全屏

else if (e.getSource() == fullscreenItem){

boolean add_button2=true;

//获得屏幕大小

Dimension size = Toolkit.getDefaultToolkit().getScreenSize();

Container content = window.getContentPane();

content.add (bar,"North");

content.add (scrollPane,"Center");

//button2为点击“全屏”后的还原按钮

if(add_button2==true) {

bar.add (button2);

}

//为button2添加事件

button2.addActionListener (new ActionListener () {

public void actionPerformed (ActionEvent evt) {

WebBrowser.this.setEnabled (true);

window.remove (bar);

window.remove (toolBar);

window.remove (scrollPane);

window.setVisible (false);

scrollPane.setPreferredSize (new Dimension (100,500));

getContentPane ().add (scrollPane,BorderLayout.SOUTH);

getContentPane ().add (bar,BorderLayout.CENTER);

getContentPane ().add (toolBar,BorderLayout.NORTH);

bar.remove (button2);

pack();

}

});

window.setSize (size);

window.setVisible (true);

}

//查看源文件

else if (e.getSource() == sourceItem ||e.getSource() == picView){

url = jurl.getText ().toString ().trim ();

if(url.length ()0!url.startsWith ("http://")) {

url="http://"+url;

}

if( !url.equals ("")) {

//根据url,获得源代码

getHtmlSource (url);

//生成显示源代码的框架对象

ViewSourceFrame vsframe = new ViewSourceFrame (htmlSource);

vsframe.setBounds (0,0,800,500);

vsframe.setVisible(true);

}

else {

JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

//刷新

else if (e.getSource() == reloadItem){

url=jurl.getText ();

if(url.length ()0url.startsWith ("http://")) {

try {

jEditorPane1.setPage (url);

jEditorPane1.setEditable(false); //add by copy editor :)

jEditorPane1.revalidate ();

}

catch(Exception ex) {

}

}

else if(url.length ()0!url.startsWith ("http://")) {

url="http://"+url;

try {

jEditorPane1.setPage (url );

jEditorPane1.setEditable(false); //add by copy editor :)

jEditorPane1.revalidate ();

}

catch(Exception ex) {

}

}

}

}

/*

**保存文件

*/

void saveFile (final String url) {

final String linesep = System.getProperty ("line.separator");

chooser1.setCurrentDirectory (new File ("."));

chooser1.setDialogType (JFileChooser.SAVE_DIALOG);

chooser1.setDialogTitle ("另存为...");

if(chooser1.showSaveDialog (this) != JFileChooser.APPROVE_OPTION)

return;

this.repaint ();

Thread thread = new Thread () {

public void run () {

try {

java.net.URL source = new URL (url);

InputStream in = new BufferedInputStream (source.openStream ());

BufferedReader br=new BufferedReader (new InputStreamReader (in));

File fileName = chooser1.getSelectedFile ();

FileWriter out = new FileWriter (fileName);

BufferedWriter bw = new BufferedWriter (out);

String line;

while((line = br.readLine ()) != null) {

bw.write (line);

bw.newLine ();

}

bw.flush ();

bw.close ();

out.close ();

String dMessage = url + " 已经被保存至"+ linesep +fileName.getAbsolutePath ();

String dTitle = "另存为";

int dType = JOptionPane.INFORMATION_MESSAGE;

JOptionPane.showMessageDialog ((Component) null,dMessage,dTitle,dType);

}

catch(java.net.MalformedURLException muex) {

JOptionPane.showMessageDialog ((Component)null,muex.toString (),"网页浏览器",JOptionPane.ERROR_MESSAGE);

}

catch(Exception ex) {

JOptionPane.showMessageDialog ((Component) null,ex.toString (),"网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

};

thread.start ();

}

/*

**获得源代码

*/

void getHtmlSource (String url) {

String linesep,htmlLine;

linesep = System.getProperty ("line.separator");

htmlSource ="";

try {

java.net.URL source = new URL (url);

InputStream in = new BufferedInputStream (source.openStream ());

BufferedReader br = new BufferedReader ( new InputStreamReader (in));

while((htmlLine = br.readLine ())!=null) {

htmlSource = htmlSource +htmlLine+linesep;

}

}

catch(java.net.MalformedURLException muex) {

JOptionPane.showMessageDialog (WebBrowser.this,muex.toString (),"网页浏览器",JOptionPane.ERROR_MESSAGE);

}

catch(Exception e) {

JOptionPane.showMessageDialog (WebBrowser.this,e.toString (),"网页浏览器",JOptionPane.ERROR_MESSAGE);

}

}

/**

**实现监听器接口的hyperlinkUpdate函数

*/

public void hyperlinkUpdate (HyperlinkEvent e) {

/* if(e.getEventType () == HyperlinkEvent.EventType.ACTIVATED) {

String url = jurl.getText();

if(url.length ()0url.startsWith ("http://")) {

try {

jEditorPane1.setPage (url);

jEditorPane1.revalidate ();

}

catch(Exception ex) {

}

}

else if(url.length ()0!url.startsWith ("http://")) {

url="http://"+url;

try {

jEditorPane1.setPage (url );

jEditorPane1.revalidate ();

}

catch(Exception ex) {

}

}

}

*/

// Revised by copy editor :) Now with new code to help hyperlink

try {

if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)

jEditorPane1.setPage(e.getURL());

} catch (Exception ex) {

ex.printStackTrace(System.err);

}

}

/*生成一个IE对象*/

public static void main (String [] args){

try{

UIManager.setLookAndFeel(

UIManager.getCrossPlatformLookAndFeelClassName()

);

}

catch(Exception e){

}

WebBrowser webBrowser = new WebBrowser ();

webBrowser.pack();

webBrowser.setVisible(true);

}

}

java可以开发手机端网页吗

Java是可以开发手机端网页的,可以使用htmlParser对新闻的链接进行解析,然后呈现出来:

1、要爬虫一个html数据在之前可以使用HtmlParser,见链接 但自从jsoup诞生后,使用比HtmlParser更方面。此处就是利用jsoup解析html的,需要加载lib文件夹下的jsoup-1.7.2.jar、jsoup-1.7.2-sources.jar,自己add to build path即可。后者是源码,可以查看,真正的包就第一个。

2、jsoup可以直接打开一个网页url,此处为了方便已经写了从url获取string类型的html代码了。所以可以直接利用Document doc = Jsoup.parse(htmlStr); 得到Document类。

以业界新闻为例,,按快捷键ctrl+u查看其源码,搜索关键字unit可以看到:

每一个新闻就是以关键字“unit”来标识的,第一页一共有10条新闻所以有10个unit。Elements units = doc.getElementsByClass("unit"); 得到这10个新闻item的集合。

3、接下来就是对一个新闻提取具体信息

java开发手机网页的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java web网站开发、java开发手机网页的信息别忘了在本站进行查找喔。